@model Apphr.Application.Ortopedia.SolicitudesPedido.DTOs.SolicitudPedidoDTOEdit
@{ ViewBag.Title = ViewBag.Mode == "INS" ? "Crear" : "Modificar "; ViewBag.Entidad = "Solicitud Pedido"; ViewBag.Icon = "<i class=\"far fa-plus-square\"></i>"; Layout = "~/Views/Shared/_AppLayout.cshtml";}
@using Newtonsoft.Json@using Apphr.Resources
<div class="container-lg"> <!--BreadCrum--> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item" data-aos="fade-left"> <a class="" href="@Url.Action("Index","Home", new { Area = "Inventario" })" style="text-decoration:none"> <i class="fa fa-home" title="Inicio"></i> <span>Inicio</span> </a> </li> <li class="breadcrumb-item" data-aos="fade-left"> <a class="" href="@Url.Action("Index")" style="text-decoration:none"> <span>Índice</span> </a> </li> <li class="breadcrumb-item" data-aos="fade-left"> <span>@ViewBag.Title</span> </li> </ol> </nav> <!--BreadCrum--> <!-- Form Title --> <h4> @ViewBag.Title @ViewBag.Entidad @Html.Raw(ViewBag.Icon) <a class="btn btn-outline-dark btn-return float-end" href="">Regresar</a> </h4> <hr class="mb-0" /> <div class="clearfix"></div> <!-- Form Title --> <!-- Permisos --> <div class="row mb-2"> <div class="col text-end"> <button id="icon-view" type="button" class="btn btn-info btn-micro btn-round"><span class="fa fa-xs fa-eye"></span></button> <button id="icon-create" type="button" class="btn btn-success btn-micro btn-round"><span class="fa fa-xs fa-plus"></span></button> <button id="icon-edit" type="button" class="btn btn-primary btn-micro btn-round"><span class="fa fa-xs fa-edit"></span></button> <button id="icon-delete" type="button" class="btn btn-danger btn-micro btn-round"><span class="fa fa-xs fa-trash"></span></button> </div> </div> <!-- Permisos --> <!-- Formulario --> @using (Ajax.BeginForm("JsSaveMaster", "SolicitudPedido", new AjaxOptions { HttpMethod = "POST", OnBegin = "master.begin", OnSuccess = "master.success", OnFailure = "master.failure" }, new { id = "form-master" })) { <div class="card border border-dark"> <div class="card-header background-inventory"> Datos Generales <a class="" data-bs-toggle="collapse" href="#collapseFilter" role="button" aria-expanded="true" aria-controls="collapseFilter"> <i class="fa fa-chevron-up fa-pull-right" style="margin-top: 5px;"></i> </a> </div> <div class="collapse show" id="collapseFilter"> <div class="card-body">
@Html.AntiForgeryToken() @*@Html.HiddenFor(x => x.mode, new { value = "INS" })*@ @*@Html.HiddenFor(x => x.year)*@ @Html.HiddenFor(x => x.SolicitudPedidoId) @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="row"> <div class="col-md-6">@Html.EditorFor(x => x.Fecha)</div> <div class="col-md-6">@Html.EditorFor(x => x.Numero)</div> <div class="col-md-6">@Html.EditorFor(x => x.TipoPrioridad, new { optionsList = ViewBag.ListTipo })</div> <div class="col-md-6">@Html.EditorFor(x => x.TipoEvento, new { optionsList = ViewBag.ListTipoEvento })</div> <div class="col-md-6">@Html.EditorFor(x => x.Elaboro)</div> <div class="col-md-6">@Html.EditorFor(x => x.Solicito)</div> <div class="col-md-6">@Html.EditorFor(x => x.JefeDepartamento)</div> <div class="col-md-6">@Html.EditorFor(x => x.Gerente)</div> <div class="col-md-6">@Html.EditorFor(x => x.Director)</div> <div class="col-md-6">@Html.EditorFor(x => x.Observaciones)</div> </div> <div class="row"> <div class="col-12"> <button id="btnSaveMaster" type="submit" class="btn btn-success float-end">Guardar <i class="far fa-save"></i></button> </div> </div> </div> </div> </div> } <!-- Botones Formulario Detalle --> <div class="row mt-2"> <div class="col-12"> <button id="btn-add-child" type="button" class="btn btn-success on-ins" data-bs-toggle="modal" onclick="child.rowCreate();" data-bs-target="#child-modal"> Adicionar Material <i class="fa fa-plus"></i></button> <button type="button" class="btn btn-outline-dark ms-2 float-end on-ins" onclick="master.refreshGrid();"><i class="fas fa-sync"></i> Refrescar</button> </div> </div> <!-- Botones Formulario Detalle --> <!-- Formulario --> <!-- Formulario Detalle --> <div id="Grid1" class="table-responsive mt-2"></div> <!-- Botones formulario --> <div class="col-md-12 mt-2 on-upd"> <a class="btn btn-outline-dark btn-return" href="">Regresar</a> <div class="float-end"> <a class="btn btn-outline-danger btn-eliminar" onclick="master.delete();"><i class="fas fa-trash"></i> Eliminar</a> </div> </div> <!-- Botones formulario --> <!-- Child-Modal --> @using (Ajax.BeginForm("JsSaveChild", "SolicitudPedido", new AjaxOptions { HttpMethod = "POST", OnBegin = "child.begin", OnSuccess = "child.success", OnFailure = "child.failure" }, new { id = "form-child" })) { @Html.Partial("_ChildModal") } <!-- Child-Modal --></div>
@section Scripts { <script> let urls = @Html.Raw(JsonConvert.SerializeObject(new { CEdit = Url.Action("CEdit"), GetMatByCod = Url.Action("JsGetMaterialByCodigo", "Materiales", new { Area = "Inventario" }), FindMateriales = Url.Action("JsGetMaterialesByFilter", "Materiales", new { Area = "Inventario" }), Details = Url.Action("Details"), Grid = Url.Action("JsGrid"), Index = Url.Action("Index"), DeleteChild = Url.Action("JsDeleteChild"), DeleteMaster = Url.Action("JsDeleteMaster") })); let permissions = @Html.Raw(JsonConvert.SerializeObject(ViewBag.Permissions)); let SinPrivilegios = '@Msg.privileges_none'; </script> <script> var mode = '@ViewBag.Mode'; var master = {}; var child = {};
$(function () { var SolicitudPedidoId = $('#SolicitudPedidoId').val(); child.btnSave = $('#btnSaveChild'); child.modal = $('#child-modal'); child.rowCreate = function () { $('#modalLabel').text('Agregar Material'); child.loadForm(); child.clearForm(); }; child.rowDelete = function (o) { let id = $(o).data('model-id'); let mt = $(o).data('model-material'); if (!permissions.Delete) { jshelper.error(SinPrivilegios); } else { jshelper.deleteConfirm(function () { jshelper.deleteAjax( urls.DeleteChild, { id: id }, function () { master.refreshGrid(); } ); }, 'Se eliminará el material <strong>' + mt + '</strong> , esta acción es irreversible !'); } }; child.rowEdit = function (o) { if (!permissions.Edit) { jshelper.error(SinPrivilegios); } else { let id = $(o).data("model-id"); $('#modalLabel').text('Editar Material'); child.loadForm(id); } }; child.begin = function () { child.btnSave.prop('disabled', true); }; child.end = function () { child.btnSave.prop('disabled', false); child.modal.modal('hide'); }; child.success = function (r) { //console.log(r); jshelper.showAlert(r.success, r.message); if (r.success) { } child.end(); master.refreshGrid(); }; child.failure = function () { jshelper.failure(); child.saveEnd(); }; child.clearForm = function () { $('#SolicitudPedidoDetalleId').val('0'); $('#Cantidad').val(''); $('#Precio').val(''); $('#Valor').val(''); $('#MaterialPrecio').val(''); $('#UnidadMedida').val(''); $('#MaterialNombre').val(''); $('#MaterialId').val(''); $('#MaterialCodigo').val(''); // Clear Validation errors $('.field-validation-error').html(""); }; child.fillForm = function (d) { //console.log(d); //$('#formLinea > #mode').val('UPD'); //$('#SolicitudPedidoId').val(id1); $('#SolicitudPedidoDetalleId').val(d.SolicitudPedidoDetalleId); $('#MaterialId').val(d.MaterialId); $('#MaterialCodigo').val(d.Material.Codigo); $('#MaterialNombre').val(d.Material.Descripcion); $('#MaterialPrecio').val(d.Material.Precio); $('#UnidadMedida').val(d.Material.UnidadMedida); $('#Cantidad').val(d.Cantidad); $('#Precio').val(d.Precio); $('#Valor').val(d.Valor); }; child.loadForm = function (id) { jshelper.get('@Url.Action("JsGetFormChild", "SolicitudPedido")', { id: id }, function (r) { $('#formLinea').html(r); let modalForm = $("#form-child"); jshelper.bindValidation(modalForm); child.bindFunctions(); child.initForm(); $('#child-modal').modal('show'); }); } child.initForm = function () { $('#MaterialNombre, #MaterialPrecio, #UnidadMedida, #Valor').attr('readonly', 'readonly'); $('#form-child #SolicitudPedidoId').val(master.id.val()); $('#form-child #Fecha').val($('#form-master #Fecha').val()); $('#form-child #Mode').val(mode); }; child.bindFunctions = function () { $('#MaterialCodigo').on('change', function () { jshelper.get( urls.GetMatByCod, { id: $("#MaterialCodigo").val() }, function (response) { if (response.success) { //console.log(response.data); if (response.data != null) { $('#MaterialId').val(response.data.MaterialId); $('#MaterialNombre').val(response.data.Descripcion); $('#UnidadMedida').val(response.data.UnidadMedida); $('#MaterialPrecio').val(response.data.Precio); $('#Cantidad').focus(); } else { $('#MaterialId').val(''); $('#MaterialNombre').val(''); $('#UnidadMedida').val(''); $('#MaterialPrecio').val(''); } } } ); }); $("#MaterialCodigo").autocomplete({ source: function (request, response) { $.ajax({ url: urls.FindMateriales, dataType: "json", data: "id=" + request.term, success: function (resp) { response($.map(resp.data, function (item) { //console.log(item); return { label: item.id, value: item.id, desc: item.text }; })); } }); }, appendTo: "#formLinea" }).data("ui-autocomplete")._renderItem = jshelper.ACRenderItem; $('#Cantidad ,#Precio').on('change', function () { var v = $('#Cantidad').val() * $('#Precio').val(); $('#Valor').val(v); }); };
master.id = $('#form-master #SolicitudPedidoId'); master.btnSave = $('#btnSaveMaster'); master.idData = function () { return { id: master.id.val() } }; master.begin = function () { master.btnSave.prop('disabled', true); } master.success = function (r) { if (r.success) { if (master.isInsert()) { master.id1.val(r.data.SolicitudPedidoId); jshelper.success(r.message + '<br/>En un momento será redireccionado', function () { window.location.replace(urlCEdit + '/' + master.id1.val()); }, 1000) } else { jshelper.success(r.message); master.initForm(); master.refreshGrid(); } } else { jshelper.error(r.message); } master.end(); } master.failure = function () { jshelper.failure(); master.saveEnd(); } master.end = function () { master.btnSave.prop('disabled', false); } master.isInsert = function () { return master.id.val() == ''; }; master.clearForm = function () { $("#Correlativo").val(''); $("#Fecha").val(''); $("#Tipo").val(''); $("#DepartamentoId").val(''); $("#DepartamentoSeccionId").val(''); $("#Elaboro").val(''); $("#Solicito").val(''); $("#JefeDepartamento").val(''); $("#Gerente").val(''); $("#Director").val(''); $("#Observaciones").val(''); }; master.delete = function () { if (!permissions.Delete) { jshelper.error(SinPrivilegios); return; }
jshelper.deleteConfirm(function () { jshelper.deleteAjax( urls.DeleteMaster, master.idData(), function () { jshelper.deleteRedirect(urls.Index); } ); }, 'Se eliminará esta <strong>Solicitud de Pedido</strong> con todo su detalle, esta acción es irreversible !' ); }; master.initForm = function () { $('#DepartamentoNombre, #SeccionNombre, #Correlativo').attr('readonly', 'readonly'); if (mode == 'INS') { master.btnSave.hide(); $('.btn-return').attr("href", urls.Index); //$('.on-ins').show(); //$('.on-upd').hide(); } else { master.btnSave.html('<i class="fas fa-edit"></i> Actualizar').removeClass('btn-success').addClass('btn-warning'); $('.btn-return').attr("href", urls.Index); //$('.on-ins').hide(); //$('.on-upd').show(); $('#SolicitudDespachoId').attr('readonly', 'readonly'); } jshelper.showPermissions(); } master.refreshGrid = function () { if (!master.isInsert()) { jshelper.get(urls.Grid, { id: master.id.val(), mode: mode }, function (data) { $('#Grid1').html(data); }); } }
// Global init form master.initForm(); master.refreshGrid();
//bind functions master.btnSave.click(function () { if (!master.isInsert) { Swal.fire({ title: '¿ Desea de actualizar ?', text: "Esta acción es irreversible!", icon: 'question', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Si', cancelButtonText: 'No' }).then((result) => { if (result.isConfirmed) { $("#form-master").submit(); } }); } else { $("#form-master").submit(); } }); $('#DepartamentoCodigo').on('blur', function () { $.ajax({ type: "GET", url: urlGetDestinoName, data: { id: $("#DepartamentoCodigo").val() }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (r) { //console.log(r); if (r.success) { $('#DepartamentoNombre').val(r.data.Descripcion); $('#DepartamentoId').val(r.data.DestinoId); $('#JefeDepartamento').val(r.data.JefeServicio); } }, failure: function (r) { console.log(r); } }); }); $('#SeccionCodigo').on('change', function () { $.ajax({ type: "GET", url: urlGetDestinoName,// this for calling the web method function in controller. data: { id: $("#SeccionCodigo").val() }, // user name value contentType: "application/json; charset=utf-8", dataType: "json", success: function (r) { //console.log(r); if (r.success) { $('#SeccionNombre').val(r.data.Descripcion); $('#SeccionId').val(r.data.DestinoId); } }, failure: function (r) { console.log(r); } }); }); $("#DepartamentoCodigo, #SeccionCodigo").autocomplete({ source: function (request, r) { $.ajax({ url: urlFindDestinos, dataType: "json", data: "filter=" + request.term, success: function (resp) { response($.map(resp.data, function (item) { //console.log(item); return { label: item.id, value: item.id, desc: item.text }; })); } }); } }).each(function (idx, ele) { $(ele).data("ui-autocomplete")._renderItem = function (ul, item) { var item = $('<div class="list_item_container"><div class="label"><strong>' + item.label + '</strong></div><div class="description" style="font-size: smaller;">' + item.desc + '</div></div>') return $("<li>").append(item).appendTo(ul); } }); }); </script>}