Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ASP 15.58 KB | None | 0 0
  1. @using NetCorpDto.Comercial.Orcamento
  2. @using NetCorpEntity.Cadastros
  3. @using NetCorpErpWeb.Areas.Comercial.Models
  4. @using NetCorpErpWeb.Models.BuscaGenerica
  5. @model NetCorpErpWeb.Areas.Comercial.Models.FiltroFeedbackOrcamentoViewModel
  6. @{
  7.     Layout = ViewBag.MasterPage;
  8. }
  9. <style>
  10.     .panel-heading {
  11.         padding-left: 4px !important;
  12.         padding-top: 0px !important;
  13.         padding-bottom: 3px !important;
  14.         max-height: 20px !important;
  15.     }
  16.     .panel {
  17.         margin-top: 4px !important;
  18.     }
  19.     .k-window-action
  20.     {
  21.         visibility: hidden ;
  22.     }
  23. </style>
  24.  
  25.         @using (Html.BeginNetCorpForm())
  26. {
  27.     <h2 class="ra-well-title">@ViewBag.Title</h2>
  28.     @Html.HiddenFor(x => x.TipoFiltro)
  29.     @Html.HiddenFor(x => x.Guid)
  30.     <div class="col-md-12">
  31.         <div class="col-md-12">
  32.             <div class="panel panel-info">
  33.                 <div class="panel-heading">@Html.Label(Language.Filtro, new {@class = "control-label", id = "labelPanel"})</div>
  34.                
  35.                 <div class="panel-body">
  36.                     <div class="form-group col-sm-2 col-md-2" >
  37.                         <div class="checkbox-group" style="padding: 0">
  38.                             @Html.Kendo().RadioButton().Label("NºOT").HtmlAttributes(new { @name = "filtroOrcamento", onclick = "TipoDeFiltro();" }).Value(0).Name("NumeroOt")
  39.                             @Html.Kendo().RadioButton().Label(Language.Representante).HtmlAttributes(new { @name = "filtroOrcamento", onclick = "TipoDeFiltro();" }).Value(1).Name("Representante")
  40.                         </div>
  41.                         <div class="form-group col-sm-12 col-md-12">
  42.                             <div id="idTextBox">
  43.                                 @Html.TextBoxFor(m => m.NumeroOt, new { @class = "form-control k-widget k-textbox" })
  44.                             </div>
  45.                             <div id="idComboBox">
  46.                                 @(Html.Kendo().DropDownListFor(m => m.IdRepresentante).HtmlAttributes(new { @class = "form-control" })
  47.                                       .OptionLabel(Language.Todos).BindTo((IEnumerable<SelectListItem>)ViewBag.Representante))
  48.                             </div>
  49.                         </div>
  50.                     </div>
  51.  
  52.                     <div class="form-group col-sm-1 col-md-1">
  53.                         @Html.LabelFor(m => m.DataInicial, new {@class = "control-label" })
  54.                         @Html.Kendo().DatePickerFor(m => m.DataInicial).HtmlAttributes(new { @class = "form-control" })
  55.                     </div>
  56.                     <div class="form-group col-sm-1 col-md-1">
  57.                         @Html.LabelFor(m => m.DataFinal, new {@class = "control-label"})
  58.                         @Html.Kendo().DatePickerFor(m => m.DataFinal).HtmlAttributes(new {@class = "form-control"})
  59.                     </div>
  60.                     <div class="form-group col-sm-2 col-md-2">
  61.                         @Html.LabelFor(x => x.IdResponsavelOrcamento, new {@class = "control-label"})
  62.                         @(Html.Kendo().DropDownListFor(m => m.IdResponsavelOrcamento).HtmlAttributes(new {@class = "form-control"})
  63.                               .OptionLabel(Language.Todos).BindTo((IEnumerable<SelectListItem>) ViewBag.Responsavel))
  64.                     </div>
  65.                     <div class="form-group  col-md-4" id="divBuscaCliente">
  66.                         @Html.LabelFor(x => x.IdCliente, new {@class = "control-label"})
  67.                         <div class="input-group busca-group">
  68.                             @(Html.BuscaGenericaFor(x => x.IdCliente, Model.Guid + "-Cliente")
  69.                                   .ModalTitle("Cliente")
  70.                                   .OnChange("BuscaCodigo")
  71.                                   .OnCarregouBusca("onCarregouBuscaCliente")
  72.                                   .ConfigurarBusca(NetCorpBuscaGenerica.Configuracao<ClienteFornecedorProspect, BuscaGenericaClienteFornecedorProspect>
  73.                                       ("Codigo", "NomeFantasia", null)))
  74.                         </div>
  75.                     </div>
  76.                     <div class="form-group col-md-3">
  77.                         @Html.LabelFor(m => m.Produto, new { @class = "control-label" })
  78.                         @Html.TextBoxFor(m => m.Produto, new { @class = "form-control k-widget k-textbox" })
  79.                     </div>
  80.  
  81.                     <div class="form-group col-md-3">
  82.                         @Html.LabelFor(x => x.IdStatusOrcamento, new { @class = "control-label" })
  83.                         @(Html.Kendo().DropDownListFor(m => m.IdStatusOrcamento).HtmlAttributes(new { @class = "form-control" })
  84.                   .Filter("startswith")
  85.                   .OptionLabel(Language.Selecione)
  86.                   .BindTo((IEnumerable<SelectListItem>)ViewBag.Status))
  87.                         @Html.ValidationMessageFor(m => m.IdStatusOrcamento)
  88.                     </div>
  89.                     <div class="form-group  col-md-1">
  90.                         @(Html.Kendo().Button()
  91.                               .Name("btnFiltrar")
  92.                               .Events(e => e.Click("onClickFiltrar"))
  93.                               .HtmlAttributes(new { type = "button", @class = "k-primary" })
  94.                               .Content(Language.Filtrar))
  95.                     </div>
  96.                 </div>
  97.             </div>
  98.         </div>
  99.         <div class="col-md-12">
  100.             <div class="panel panel-info">
  101.                 <div class="panel-body">
  102.                     @(Html.Kendo().Grid<NetCorpErpWeb.Areas.Comercial.Models.PropostaSimplesViewModel>()
  103.                           .Name("GridPropostas")
  104.                           .ToolBar(tools => tools.Excel())
  105.                           .Excel(excel => excel
  106.                               .FileName("feedback_orçamentos.xlsx")
  107.                               .Filterable(true)
  108.                               .AllPages(true)
  109.                               .ProxyURL(Url.Action("Excel_Export_Save", "Util"))
  110.                           )
  111.                           .Columns(columns =>
  112.                           {
  113.                               columns.Bound(p => p.IdProposta).Visible(false);
  114.                               columns.Bound(p => p.NumeroOT);
  115.                               columns.Bound(p => p.DataProposta).Format("{0:dd/MM/yyyy}");
  116.                               columns.Bound(p => p.ClienteProspect);
  117.                               columns.Bound(p => p.Status);
  118.                               columns.Bound(p => p.Representante);
  119.                               columns.Bound(p => p.Responsavel);
  120.                               columns.Bound(p => p.Retorno).Format("{0:dd/MM/yyyy}");
  121.                               columns.Command(c => c.Custom("Aprovar").Click("onAprovarClick").Text(" "));
  122.                           })
  123.                           .Editable(editable => editable.Mode(GridEditMode.InLine))
  124.                           .Pageable().Sortable().Scrollable()
  125.                           .ClientDetailTemplateId("template")
  126.                           .HtmlAttributes(new { style = "height:430px;" })
  127.                           .DataSource(dataSource => dataSource
  128.                               .Ajax()
  129.                               .Model(model => model.Id(p => p.IdProposta))
  130.                               .Read(read => read.Action("WW3027_PropostaDetalhe_Read", "FeedbackOrcamento").Data("WW3027_PropostaDetalhe_aditionalData"))
  131.                           ).Events(evt =>
  132.                           {
  133.                               evt.DataBound("WW3027_Grid_DataBound");
  134.                           })
  135.                     )
  136.                 </div>
  137.             </div>
  138.         </div>
  139.     </div>
  140.  
  141.  
  142.     <div style="display: none" id="modalFeedback">
  143.         @Html.Hidden("IdProposta")
  144.         <div class="col-md-6">
  145.             @Html.Label(Language.NumeroOT, new {@class = "control-label"})
  146.             @(Html.Kendo().TextBox().Name("NumeroOT").HtmlAttributes(new {@class = "form-control"}).Enable(false))
  147.         </div>
  148.         <div class="col-md-6">
  149.             @Html.Label(Language.Cliente, new {@class = "control-label"})
  150.             @(Html.Kendo().TextBox().Name("ClienteFornecedor").HtmlAttributes(new {@class = "form-control", @style = "width : 200px"}).Enable(false))
  151.         </div>
  152.         <div class="col-md-6">
  153.             @Html.Label(Language.Status, new {@class = "control-label"})
  154.             @(Html.Kendo().DropDownList().Name("Status").HtmlAttributes(new {@class = "form-control"})
  155.                   .OptionLabel(Language.Selecione).BindTo((IEnumerable<SelectListItem>) ViewBag.Status).Events(evt => evt.Change("onStatusChange")))
  156.         </div>
  157.         <div class="col-md-6" id="comboConcorrente">
  158.             @Html.Label(Language.Concorrente, new {@class = "control-label"})
  159.             @(Html.Kendo().DropDownList().Name("Concorrente").HtmlAttributes(new {@class = "form-control"})
  160.                   .OptionLabel(Language.Selecione).BindTo((IEnumerable<SelectListItem>) ViewBag.Concorrente))
  161.         </div>
  162.         <div class="col-md-6" id="dtpPrazoRetorno">
  163.             @Html.Label(Language.PrazoRetorno, new {@class = "control-label"})
  164.             @(Html.Kendo().DatePicker().Name("PrazoRetorno").HtmlAttributes(new {@class = "form-control"}))
  165.         </div>
  166.         <div class="col-md-11">
  167.             @Html.Label(Language.Observacao, new {@class = "control-label"})
  168.             @(Html.TextArea("Observacao", new {@class = "form-control", @rows = "8"}))
  169.         </div>
  170.         <div class="col-md-6" style="float: right; margin-top: 5px">
  171.             <div class="form-group col-md-9">
  172.                 @(Html.Kendo().Button()
  173.                       .Name("CancelarFeedback")
  174.                       .Events(e => e.Click("onCancelarAprovacao"))
  175.                       .HtmlAttributes(new {type = "button", @style = "float: right"})
  176.                       .Content(Language.Cancelar))
  177.             </div>
  178.             <div class="form-group col-md-3" style="float: right">
  179.                 @(Html.Kendo().Button()
  180.                       .Name("ConfirmarFeedback")
  181.                       .Events(e => e.Click("onConfirmarAprovacao"))
  182.                       .HtmlAttributes(new {type = "button", @class = "k-primary", @style = "float: right"})
  183.                       .Content("Ok"))
  184.             </div>
  185.         </div>
  186.  
  187.     </div>
  188.  
  189.     }
  190.     <script id="template" type="text/kendo-tmpl">
  191.     @(Html.Kendo().Grid<ItemPesquisaOrcamentoDto>()
  192.             .Name("grid_#=IdProposta#")
  193.             .Columns(columns =>
  194.             {
  195.                 columns.Bound(c => c.Item).Width("50px");
  196.                 columns.Bound(c => c.TipoProduto);
  197.                 columns.Bound(c => c.Modelo).Width("350px");
  198.                 columns.Bound(c => c.Quantidade).HtmlAttributes(new { @style = "text-align:right" }).Width("50px");
  199.                 columns.Bound(c => c.ValorAereo).HtmlAttributes(new { @style = "text-align:right" }).Width("100px");
  200.                 columns.Bound(c => c.PrazoAereo);
  201.                 columns.Bound(c => c.ValorMaritimo).HtmlAttributes(new { @style = "text-align:right" }).Width("100px");
  202.                 columns.Bound(c => c.PrazoMaritimo);
  203.                 columns.Bound(c => c.Imediato);
  204.             })
  205.             .DataSource(dataSource => dataSource
  206.                 .Ajax()
  207.                 .Read(read => read.Action("BuscarItens", "PesquisaOrcamento", new { idOrcamento = "#=IdProposta#" }))
  208.             )
  209.             .Sortable()
  210.             .ToClientTemplate()
  211.     )
  212.     </script>
  213.     <script>
  214.     function WW3027_Grid_DataBound() {
  215.  
  216.         var grid = $('#GridPropostas').data('kendoGrid');
  217.         if (grid.dataSource.transport.options.read.url != "") {
  218.             for (var i = 0; i < grid.columns.length; i++) {
  219.                 grid.autoFitColumn(grid.columns[i].field);
  220.             }
  221.         }
  222.  
  223.         $(".k-grid-Aprovar span").removeClass();
  224.         $(".k-grid-Aprovar span").addClass("k-sprite glyphicon glyphicon-pencil");
  225.         $(".k-grid-Aprovar").css("min-width", "0px");
  226.     }
  227.  
  228.     function WW3027_PropostaDetalhe_aditionalData() {
  229.         return {
  230.             numeroOt: $("#NumeroOt").val(),
  231.             idRepresentante: $("#IdRepresentante").data("kendoDropDownList").value(),
  232.             filtroOrcamento: $('input[name="filtroOrcamento"]:checked').val() == 0,
  233.             dataEmissaoInicial: $("#DataInicial").val(),
  234.             dataEmissaoFinal: $("#DataFinal").val(),
  235.             idResponsavelOrcamento: $("#IdResponsavelOrcamento").val(),
  236.             idCliente: $("#IdCliente").val(),
  237.             produto: $("#Produto").val(),
  238.             idStatusOrcamento: $("#IdStatusOrcamento").data("kendoDropDownList").value(),
  239.         }
  240.     }
  241.  
  242.     function TipoDeFiltro() {
  243.         var valor = $('input[name="filtroOrcamento"]:checked').val();
  244.         $("#TipoFiltro").val(valor);
  245.         if (valor == 0) {
  246.             $("#idComboBox").hide();
  247.             $("#idTextBox").show();
  248.  
  249.         } else {
  250.             $("#idComboBox").show();
  251.             $("#idTextBox").hide();
  252.         }
  253.     }
  254.  
  255.     function onStatusChange() {
  256.         var status = $("#Status").data("kendoDropDownList").value();
  257.         if (status == 7) {
  258.             $("#dtpPrazoRetorno").show();
  259.             $("#comboConcorrente").hide();
  260.         } else {
  261.             $("#dtpPrazoRetorno").hide();
  262.             $("#comboConcorrente").show();
  263.         }
  264.  
  265.     }
  266.  
  267.     function onCancelarAprovacao() {
  268.         $("#modalFeedback").data("kendoWindow").close();
  269.     }
  270.  
  271.     function onConfirmarAprovacao() {
  272.         var prazoRetorno = $("#PrazoRetorno").data("kendoDatePicker").value();
  273.         var dataPrazoRetorno = convertStringDate(prazoRetorno);
  274.         if (confirm("Deseja realmente atribuir este feedback?")) {
  275.             $.get("@Url.Action("AtribuirFeedback", "FeedbackOrcamento")",
  276.                 {
  277.                     idProposta: $("#IdProposta").val(),
  278.                     idStatus: $("#Status").data("kendoDropDownList").value(),
  279.                     idConcorrente: $("#Concorrente").data("kendoDropDownList").value(),
  280.                     prazoRetorno: dataPrazoRetorno,
  281.                     observacao: $("#Observacao").val()
  282.                 })
  283.                 .success(function(result) {
  284.                     $("#modalFeedback").data("kendoWindow").close();
  285.                     alert("Feedback atribuído com sucesso.");
  286.                     onClickFiltrar();
  287.                 }).error(function(error, msg) {
  288.                     alert("Não foi possível atribuir este feedback."); //" devido ao seguinte erro:\n" + error);
  289.                 });
  290.         }
  291.     }
  292.  
  293.     function convertStringDate(str) {
  294.         var date = new Date(str),
  295.             mnth = ("0" + (date.getMonth() + 1)).slice(-2),
  296.             day = ("0" + date.getDate()).slice(-2);
  297.         return [day, mnth, date.getFullYear()].join("-");
  298.     }
  299.     function onAprovarClick(e) {
  300.         e.preventDefault();
  301.         var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
  302.         $("#IdProposta").val(dataItem.IdProposta);
  303.         $("#NumeroOT").val(dataItem.NumeroOT);
  304.         $("#ClienteFornecedor").val(dataItem.ClienteFornecedor);
  305.         $("#Status").data("kendoDropDownList").value(dataItem.IdStatus);
  306.         $("#Observacao").val("");
  307.         modalCreateInView('modalFeedback', 'Atribuir Feedback', 315, 600);
  308.     }
  309.  
  310.     function onClickFiltrar() {
  311.         $('#GridPropostas').data('kendoGrid').dataSource.read();
  312.         $('#GridPropostas').data('kendoGrid').refresh();
  313.     }
  314.  
  315.     $(function() {
  316.         $("#NumeroOt_0").prop("checked", true);
  317.         $("#idComboBox").hide();
  318.         $("#dtpPrazoRetorno").hide();
  319.         $("#comboConcorrente").hide();
  320.     });
  321. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement