Entradas salidas ajustes

This commit is contained in:
rakcsle
2023-12-21 19:26:47 -07:00
parent 4bac24692c
commit b431ee5400
3 changed files with 339 additions and 161 deletions

View File

@@ -664,7 +664,8 @@
<asp:Button ID="BtnVinculaAFEdit" ClientIDMode="Static" OnClick="BtnVinculaAFEdit_Click" Style="display: none;" runat="server" />
<asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" />
<asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle,Cantidad,CvePS,CveUM,PU,Observaciones,CodigoPS,UnidadMedida,CveAF,Serie,Lote,FechaCaducidad,CveSeccionAlmacen" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" >
<asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" EmptyDataText="Aún no hay registros."
DataKeyNames="No,CveMovimientoDetalle,Cantidad,CvePS,CveUM,PU,Observaciones,CodigoPS,UnidadMedida,CveAF,Serie,Lote,FechaCaducidad,CveSeccionAlmacen" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" >
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt">
<EditItemTemplate>
@@ -786,13 +787,19 @@
<asp:TemplateField>
<EditItemTemplate>
<center>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" />
&nbsp;<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</center>
<div class="row" style="max-width:80px!important">
<div class="col-md-6">
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" />
</div>
<div class="col-md-6">
<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</div>
</div>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" OnClick="imgE_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" OnClick="DeleteRow" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />
<asp:LinkButton ID="lnkDividir" runat="server" AlternateText="Eliminar" OnClick="DividirRow" CommandArgument='<%# Eval("No")%>' Style="font-size: 9px" CssClass="btn btn-circle btn-sm red" Text="<i class='fas fa-chart-pie-alt'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea dividir el concepto en unidades?" data-btn-ok-label="si" />
</ItemTemplate>
@@ -1659,11 +1666,14 @@
<div class="row">
<div class="col-md-6">
<div runat="server" id="divCantidad" class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="txtCantidad" CssClass="form-control" MaxLength="15" runat="server" ValidationGroup="GprAgregaPS"></asp:TextBox>
<asp:TextBox ID="txtCantidad" CssClass="form-control" MaxLength="15" runat="server" ValidationGroup="GrpAgregarPS" ClientIDMode="Static" onkeyup="calcularTotal()"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="txtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="txtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GprAgregaPS"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="txtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo."
ValidationGroup="GrpAgregarPS"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales). Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GprAgregaPS"></asp:CustomValidator>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digitsM0" ControlToValidate="TxtCantidad" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales) y mayor a cero. Por favor rectifique y vuelva a intentar."
ValidateEmptyText="True" ValidationGroup="GrpAgregarPS"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="CVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<label for="<%= txtCantidad.ClientID.ToString()%>">Cantidad</label>
</div>
@@ -1687,8 +1697,17 @@
<div runat="server" id="divPrecio" class="form-group form-md-line-input input-iconright" visible="false">
<asp:TextBox ID="txtPrecio" CssClass="form-control " runat="server" Width="50%" Visible="false"></asp:TextBox>
<label for="<%= txtPrecio.ClientID.ToString()%>">Precio unitario</label>
<asp:TextBox ID="txtPrecio" CssClass="form-control " runat="server" Width="50%" Visible="true" ClientIDMode="Static" onkeyup="calcularTotal()" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="txtPrecio" FilterType="Custom" ValidChars=".1234567890" />
<asp:RequiredFieldValidator ID="RfvtxtPrecio" runat="server" ControlToValidate="txtPrecio" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio unitario''</b> es necesario, por favor ingréselo."
ValidationGroup="GrpAgregarPS"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCRfvtxtPrecio" runat="server" HighlightCssClass="vco" TargetControlID="RfvtxtPrecio" Width="300px"></ajax:ValidatorCalloutExtender>
<label for="<%= txtPrecio.ClientID.ToString()%>">Precio unitario</label>
</div>
<div class="row">
@@ -1696,7 +1715,14 @@
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtnSerie" CssClass="form-control " runat="server" Width="120px"></asp:TextBox>
<asp:Button Text="" ID="BtnSerieAddNew" OnClick="BtnSerieAddNew_Click" Style="display: none" runat="server" />
<label for="<%= TxtnSerie.ClientID.ToString()%>">Serie</label>
<label for="<%= TxtnSerie.ClientID.ToString()%>">Serie</label>
<asp:RequiredFieldValidator ID="RfvTxtnSerie" runat="server" ControlToValidate="TxtnSerie" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie''</b> es necesario, por favor ingréselo."
ValidationGroup="GrpAgregarPS"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCRfvTxtnSerie" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtnSerie" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-6" runat="server" id="divSeccionAlmacen" visible="false">
@@ -1714,6 +1740,12 @@
<div class="col-md-6" runat="server" id="divLote" visible="false">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtnLote" CssClass="form-control" runat="server" Width="120px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtnLote" runat="server" ControlToValidate="TxtnLote" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie''</b> es necesario, por favor ingréselo."
ValidationGroup="GrpAgregarPS"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCRfvTxtnLote" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtnLote" Width="300px"></ajax:ValidatorCalloutExtender>
<label for="<%= TxtnLote.ClientID.ToString()%>">Lote</label>
</div>
</div>
@@ -1729,9 +1761,16 @@
<ajax:MaskedEditExtender ID="MEEFechaCaducidad" runat="server" TargetControlID="TxtnFechaCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaCaducidad" TargetControlID="TxtnFechaCaducidad" PopupButtonID="LnkFechaCaducidad" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaCaducidad" runat="server" ControlToValidate="TxtnFechaCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Caducidad''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup=""></asp:CompareValidator>
<asp:CompareValidator ID="CVFechaCaducidad" runat="server" ControlToValidate="TxtnFechaCaducidad" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Caducidad''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)."
Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpAgregarPS"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCEFEchaCaducidad" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaCaducidad" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="RfvTxtnFechaCaducidad" runat="server" ControlToValidate="TxtnFechaCaducidad" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Caducidad''</b> es necesario, por favor ingréselo."
ValidationGroup="GrpAgregarPS"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCRfvTxtnFechaCaducidad" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtnFechaCaducidad" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
@@ -1772,23 +1811,29 @@
</div>
<div runat="server" id="ThTotal" class="form-group form-md-line-input input-iconright" visible="false">
<label for="<%= TdTotal.ClientID.ToString()%>">Total</label>
<asp:Literal ID="TdTotal" runat="server" Visible="false"></asp:Literal>
<asp:Label ID="TdTotal" runat="server" Visible="false" ClientIDMode="Static"></asp:Label>
</div>
<div runat="server" id="DVCultivosCuadro" class="form-group form-md-line-input input-iconright" visible="false">
<asp:DropDownList ID="DdlModalCultivosCuadro" CssClass=" form-control select2me" runat="server" DataTextField="TemporadaCuadro" Style="width: 100%; max-width: 600px;"
DataValueField="CveCultivoCuadroDetalle" ValidationGroup="GrpProduccion">
DataValueField="CveCultivoCuadroDetalle" ValidationGroup="GrpAgregarPS">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvDdlModalCultivosCuadro" InitialValue="-1" runat="server" CssClass="help-block errorimput" ControlToValidate="DdlModalCultivosCuadro"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El Cuadro <b>''Cuadro''</b> es necesario, por favor ingréselo." ValidationGroup="GrpProduccion">
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El Cuadro <b>''Cuadro''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregarPS">
</asp:RequiredFieldValidator>
<label runat="server" for="<%= DdlModalCultivosCuadro.ClientID.ToString()%>">Cultivo:</label>
<i></i>
</div>
<div class="row">
<div class="col-md-12" style="text-align:right">
<asp:CheckBox runat="server" ID="ChkContinuarRegistrando" Checked="true" Text="Seguir Registrando" TextAlign="Left" />
</div>
</div>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LkAgregarDetalle" runat="server" CssClass="btn btn-primary" Text="Agregar"></asp:LinkButton>
<asp:LinkButton ID="LkAgregarDetalle" runat="server" CssClass="btn btn-primary" Text="Agregar" ValidationGroup="GrpAgregarPS" CausesValidation="true">></asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
@@ -1929,58 +1974,42 @@
}
$('#<%= GvM.ClientID%>').ADScroll({ 'height': Alto });
<%-- if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val());
}
}
if ($("#<%= DdlProductows.ClientID%>").data('creado') === '1') { } else {
$("#<%= DdlProductows.ClientID%>").data('creado', '1')
$("#<%= DdlProductows.ClientID%>").select2({
ajax: {
url: "/Ashx/SIGWeb.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
return {
Name: params.term, // search term
Metodo: 'getps'
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 3
});
}
if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val());
}
$("#<%= DdlProductows.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); $('#<%= myhidenbutton.ClientID %>').click(); });
}
if ($("#<%= DdlProducto.ClientID%>")) {
$("#<%= DdlProducto.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); });
}--%>
});
function ValidaDecimal6digitsM0(val, args) {
if (args.Value.match(/^[1-9]\d*(\.\d{1,6})?$/))
args.IsValid = true;
else
args.IsValid = false;
}
function calcularTotal() {
var cantidad = parseFloat($('#txtCantidad').val().replace(/,/g, ''));
var precio = parseFloat($('#txtPrecio').val().replace(/,/g, ''));
if (!isNaN(cantidad) && !isNaN(precio)) {
var resultado = cantidad * precio;
var formatoResultado = formatoMoneda(resultado);
$('#TdTotal').text(formatoResultado);
} else {
$('#TdTotal').text('');
}
}
function formatoMoneda(valor) {
if (valor % 1 !== 0) { // Si el valor tiene decimales
return valor.toLocaleString('es-MX', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
} else {
return valor.toLocaleString('es-MX'); // Sin decimales
}
}
</script>
</asp:Content>

View File

@@ -275,6 +275,23 @@ Partial Class Inventarios_EntradasSalidas
ViewState("CveMovimientoDetalleEdit") = value
End Set
End Property
Public Property IndexActualTabla() As Integer
Get
If ViewState("IndexActualTabla") Is Nothing Then
ViewState("IndexActualTabla") = -1
End If
Return ViewState("IndexActualTabla").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("IndexActualTabla") = value
End Set
End Property
Public Property CveAFEdit() As Integer
Get
Return ViewState("CveAFEdit").ToString.ToEntero
@@ -1287,10 +1304,23 @@ Partial Class Inventarios_EntradasSalidas
End Sub
Private Sub LimpiarAgregar()
'DdlClasificacion.SelectedValue = "-1"
txtCantidad.Text = ""
TxtnLote.Text = ""
TxtObservacionesdetalle.Text = ""
LblCodigo.Text = ""
TxtnSerie.Text = ""
TxtnFechaCaducidad.Text = ""
HdnCodigoAF.Value = "-1"
HdnCveActivoFijo.Value = "-1"
txtPrecio.Text = ""
divSerie.Visible = False
divLote.Visible = False
divSeccionAlmacen.Visible = False
divCaducidad.Visible = False
UpAgregar.Update()
End Sub
Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click
@@ -1425,12 +1455,23 @@ Partial Class Inventarios_EntradasSalidas
' AgregarPS()
'End Sub
Protected Sub LkAgregarDetalle_Click(sender As Object, e As EventArgs) Handles LkAgregarDetalle.Click
If CveMovimientoDetalleEdit > 0 Then
ActualizarPS()
If CveMovimiento > 0 Then
If CveMovimientoDetalleEdit > 0 Then
ActualizarPS()
Else
AgregarPS()
End If
Else
AgregarPS()
If IndexActualTabla >= 0 Then
ActualizarPS()
Else
AgregarPS()
End If
End If
End Sub
Protected Sub BtnSerieAddNew_Click(sender As Object, e As EventArgs)
AgregarPS()
@@ -1464,9 +1505,10 @@ Partial Class Inventarios_EntradasSalidas
TxtnFechaCaducidad.Text = ""
HdnCodigoAF.Value = "-1"
HdnCveActivoFijo.Value = "-1"
txtPrecio.Text = ""
DdlModalCultivosCuadro.SelectedValueExist(-1)
RegistraScript("CodigoAF = "";")
RegistraScript("CodigoAF = '';")
If Not UsuarioActual.Empresa.Funcionalidad(105).ToString = "1" Then
DdlProducto2.SelectedValue = "-1"
@@ -1475,11 +1517,16 @@ Partial Class Inventarios_EntradasSalidas
DdlProducto2.SelectedText = ""
End If
txtCantidad.Focus()
If ChkContinuarRegistrando.Checked Then
txtCantidad.Focus()
Else
RegistraScript("$('#ModalAgregar').modal('hide');")
End If
End Sub
Protected Sub AddNew(CvePS As Integer, PS As String, CveUM As Integer, UM As String, Cantidad As Decimal, PU As Decimal, Serie As String, CodigoAF As String, Codigo As String, CveAF As String, Observaciones As String, Lote As String, FechaCaducidad As Date, CveSeccionAlmacen As Integer, SeccionAlmacen As String, Optional CargarGV As Boolean = True, Optional CveCultivoCuadroDetalle As Integer = -1)
Protected Sub AddNew(CvePS As Integer, PS As String, CveUM As Integer, UM As String, Cantidad As Decimal, PU As Decimal, Serie As String, CodigoAF As String, Codigo As String, CveAF As String, Observaciones As String, Lote As String, FechaCaducidad As Date, CveSeccionAlmacen As Integer, SeccionAlmacen As String, Optional CargarGV As Boolean = True, Optional CveCultivoCuadroDetalle As Integer = -1, Optional IndexEspecidico As Integer = -1)
If DdlAlmacen.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un almacen", TipoMensaje.MsgAdvertencia) : RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") : DdlProducto2.SelectedText = "" : Exit Sub
@@ -1539,55 +1586,112 @@ Partial Class Inventarios_EntradasSalidas
End If
End If
If Valido Then
If IndexEspecidico >= 0 Then
Dim CveClasificacion As Integer
'Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If RowPS IsNot Nothing Then CveClasificacion = RowPS("CveClasificacion").ToString.ToEntero
'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS
If Serie <> "" And (Serie.ToUpper = RowPS("Codigo").ToString.ToUpper Or Serie.ToUpper = RowPS("CodigoBarras").ToString.ToUpper) Then
Alert($"La serie indicada <b>{Serie}</b> coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
If Valido Then
DtMovimientos.Rows(IndexEspecidico)("Cantidad") = Cantidad
DtMovimientos.Rows(IndexEspecidico)("CveUM") = CveUM
DtMovimientos.Rows(IndexEspecidico)("UnidadMedida") = UM
DtMovimientos.Rows(IndexEspecidico)("CvePS") = CvePS
If Codigo = "-1" Then
DtMovimientos.Rows(IndexEspecidico)("CodigoPS") = PS
Else
DtMovimientos.Rows(IndexEspecidico)("CodigoPS") = String.Format("{0} - {1}", Codigo, PS)
End If
DtMovimientos.Rows(IndexEspecidico)("PS") = PS
DtMovimientos.Rows(IndexEspecidico)("PU") = PU
DtMovimientos.Rows(IndexEspecidico)("PUExtranjero") = PU
DtMovimientos.Rows(IndexEspecidico)("Total") = Cantidad * PU
DtMovimientos.Rows(IndexEspecidico)("CveClasificacion") = CveClasificacion
DtMovimientos.Rows(IndexEspecidico)("Estatus") = ""
DtMovimientos.Rows(IndexEspecidico)("CveSeccionAlmacen") = CveSeccionAlmacen
DtMovimientos.Rows(IndexEspecidico)("SeccionAlmacen") = SeccionAlmacen
DtMovimientos.Rows(IndexEspecidico)("CodigoAF") = CodigoAF
DtMovimientos.Rows(IndexEspecidico)("Codigo") = Codigo
DtMovimientos.Rows(IndexEspecidico)("CveAF") = CveAF
DtMovimientos.Rows(IndexEspecidico)("Serie") = If(Serie <> "", Serie, "")
DtMovimientos.Rows(IndexEspecidico)("Lote") = If(Lote <> "", Lote, "")
DtMovimientos.Rows(IndexEspecidico)("FechaCaducidad") = FechaCaducidad
DtMovimientos.Rows(IndexEspecidico)("Observaciones") = Observaciones
DtMovimientos.Rows(IndexEspecidico)("AplicaCaducidad") = RowPS("AplicaCaducidad").ToString
DtMovimientos.Rows(IndexEspecidico)("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
DtMovimientos.AcceptChanges()
If CargarGV Then
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
RegistraScript("playsonidito('beep-07.wav')")
End If
End If
If String.IsNullOrEmpty(PS.Trim()) Then
PS = RowPS("PS").ToString()
Else
If Valido Then
Dim CveClasificacion As Integer
'Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If RowPS IsNot Nothing Then CveClasificacion = RowPS("CveClasificacion").ToString.ToEntero
'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS
If Serie <> "" And (Serie.ToUpper = RowPS("Codigo").ToString.ToUpper Or Serie.ToUpper = RowPS("CodigoBarras").ToString.ToUpper) Then
Alert($"La serie indicada <b>{Serie}</b> coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If String.IsNullOrEmpty(PS.Trim()) Then
PS = RowPS("PS").ToString()
End If
Dim registro As DataRow = DtMovimientos.NewRow
registro.Item("Cantidad") = Cantidad
registro.Item("CveUM") = CveUM
registro.Item("UnidadMedida") = UM
registro.Item("CvePS") = CvePS
If Codigo = "-1" Then
registro.Item("CodigoPS") = PS
Else
registro.Item("CodigoPS") = String.Format("{0} - {1}", Codigo, PS)
End If
registro.Item("PS") = PS
registro.Item("PU") = PU
'registro.Item("PUExtranjero") = PU
registro.Item("Total") = Cantidad * PU
registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = ""
registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
registro.Item("SeccionAlmacen") = SeccionAlmacen
registro.Item("CodigoAF") = CodigoAF
registro.Item("Codigo") = Codigo
registro.Item("CveAF") = CveAF
registro.Item("Serie") = If(Serie <> "", Serie, "")
registro.Item("Lote") = If(Lote <> "", Lote, "")
registro.Item("FechaCaducidad") = FechaCaducidad
registro.Item("Observaciones") = Observaciones
registro.Item("AplicaCaducidad") = RowPS("AplicaCaducidad").ToString
registro.Item("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
DtMovimientos.Rows.Add(registro)
If CargarGV Then
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
RegistraScript("playsonidito('beep-07.wav')")
End If
End If
Dim registro As DataRow = DtMovimientos.NewRow
registro.Item("Cantidad") = Cantidad
registro.Item("CveUM") = CveUM
registro.Item("UnidadMedida") = UM
registro.Item("CvePS") = CvePS
registro.Item("CodigoPS") = String.Format("{0} - {1}", Codigo, PS)
registro.Item("PS") = PS
registro.Item("PU") = PU
'registro.Item("PUExtranjero") = PU
registro.Item("Total") = Cantidad * PU
registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = ""
registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
registro.Item("SeccionAlmacen") = SeccionAlmacen
registro.Item("CodigoAF") = CodigoAF
registro.Item("Codigo") = Codigo
registro.Item("CveAF") = CveAF
registro.Item("Serie") = If(Serie <> "", Serie, "")
registro.Item("Lote") = If(Lote <> "", Lote, "")
registro.Item("FechaCaducidad") = FechaCaducidad
registro.Item("Observaciones") = Observaciones
registro.Item("AplicaCaducidad") = RowPS("AplicaCaducidad").ToString
registro.Item("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
DtMovimientos.Rows.Add(registro)
If CargarGV Then
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
RegistraScript("playsonidito('beep-07.wav')")
End If
End If
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
@@ -2432,7 +2536,7 @@ Partial Class Inventarios_EntradasSalidas
Private Sub VisualizaPU(Opcion As Boolean)
'tdPU.Visible = Opcion
'tdTxtPU.Visible = Opcion
txtPrecio.Visible = Opcion
divPrecio.Visible = Opcion
GvM.Columns(4).Visible = Opcion
TdTotal.Visible = Opcion
@@ -2499,12 +2603,7 @@ Partial Class Inventarios_EntradasSalidas
End If
If CBool(dr("AplicaSeccion")) Then
divSeccionAlmacen.Visible = True
'DdlSeccionAlmacen.Items.Clear()
'DdlSeccionAlmacen.ClearSelection()
'DdlSeccionAlmacen.DataSource = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero)
'DdlSeccionAlmacen.DataBind()
CargaSeccionesAlmacen(DdlSeccionAlmacen, DdlAlmacen.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
End If
If CBool(dr("AplicaCaducidad")) Then
divCaducidad.Visible = True
@@ -2683,11 +2782,21 @@ Partial Class Inventarios_EntradasSalidas
End If
End Sub
Protected Sub GvM_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvM.RowEditing
Dim i As Integer = e.NewEditIndex
GvM.EditIndex = i
Dim Gv As GridView = DirectCast(sender, GridView)
Dim GvRow As GridViewRow = Gv.Rows(i)
End Sub
Protected Sub imgE_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
'Dim i As Integer = e.NewEditIndex
'GvM.EditIndex =
IndexActualTabla = GvRow.RowIndex
If CveMovimiento > 0 Then
CveMovimientoDetalleEdit = GvRow.DataKey("CveMovimientoDetalle").ToEntero
txtCantidad.Enabled = False
@@ -2717,14 +2826,20 @@ Partial Class Inventarios_EntradasSalidas
LkAgregarDetalle.Text = "Actualizar"
Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero
divPrecio.Visible = (Origen = 1)
txtPrecio.Visible = (Origen = 1)
'txtPrecio.Visible = (Origen = 1)
If UsuarioActual.CveRol = 1 Then
divPrecio.Visible = True
txtPrecio.Visible = True
'txtPrecio.Visible = True
End If
ChkContinuarRegistrando.Checked = False
ChkContinuarRegistrando.Visible = False
UpAgregar.Update()
RegistraScript("$('#ModalAgregar').modal()")
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
' CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
End Sub
Protected Sub EditPS(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
@@ -2749,8 +2864,12 @@ Partial Class Inventarios_EntradasSalidas
Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero
divPrecio.Visible = Origen = 1
txtPrecio.Visible = Origen = 1
'txtPrecio.Visible = Origen = 1
LkAgregarDetalle.Text = "Actualizar"
ChkContinuarRegistrando.Checked = False
ChkContinuarRegistrando.Visible = False
UpAgregar.Update()
RegistraScript("$('#ModalAgregar').modal()")
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
@@ -5210,26 +5329,42 @@ Partial Class Inventarios_EntradasSalidas
Private Sub ActualizarPS()
Dim ObjInventario As New ClsInventarios
If Not ObjInventario.UpdateMovimientoDetalle(txtCantidad.Text.ToDecimal, DdlUnidad.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero, txtPrecio.Text.ToDecimal, CveAFEdit,
CveMovimientoDetalleEdit, DdlSeccionAlmacen.SelectedValue.ToEntero, TxtnSerie.Text, TxtObservacionesdetalle.Text,
CveUsuarioModifico:=UsuarioActual.CveUsuario, CveCultivoCuadroDetalle:=DdlModalCultivosCuadro.SelectedValue.ToEntero) Then
Alert("Error al Actualizar los movimientos")
Else
GvM.EditIndex = -1
'cargar también los movimentos detalle
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
DtMovimientos = ObjInventario.DtResultados
CargaGVM(DtMovimientos)
If CveMovimientoDetalleEdit > 0 Then
Dim ObjInventario As New ClsInventarios
If Not ObjInventario.UpdateMovimientoDetalle(txtCantidad.Text.ToDecimal, DdlUnidad.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero, txtPrecio.Text.ToDecimal, CveAFEdit,
CveMovimientoDetalleEdit, DdlSeccionAlmacen.SelectedValue.ToEntero, TxtnSerie.Text, TxtObservacionesdetalle.Text,
CveUsuarioModifico:=UsuarioActual.CveUsuario, CveCultivoCuadroDetalle:=DdlModalCultivosCuadro.SelectedValue.ToEntero) Then
Alert("Error al Actualizar los movimientos")
Else
GvM.EditIndex = -1
'cargar también los movimentos detalle
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
DtMovimientos = ObjInventario.DtResultados
CargaGVM(DtMovimientos)
End If
Alert("Movimiento actualizado correctamente")
RegistraScript("$('#ModalAgregar').modal('hide')")
End If
ObjInventario.Dispose()
Else
AddNew(DdlProducto2.SelectedValue.ToEntero, DdlProducto2.SelectedText, DdlUnidad.SelectedValue.ToEntero, DdlUnidad.SelectedItem.Text, txtCantidad.Text.ToDecimal,
txtPrecio.Text.ToDecimal, TxtnSerie.Text.Replace(" ", String.Empty), LblCodigo.Text, HdnCodigoAF.Value, HdnCveActivoFijo.Value, TxtObservacionesdetalle.Text,
TxtnLote.Text.Trim, TxtnFechaCaducidad.Text.ToDate, DdlSeccionAlmacen.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedItem.Text, CveCultivoCuadroDetalle:=DdlModalCultivosCuadro.SelectedValue.ToEntero, IndexEspecidico:=IndexActualTabla)
LimpiarAgregar()
Alert("Movimiento actualizado correctamente")
RegistraScript("$('#ModalAgregar').modal('hide')")
End If
ObjInventario.Dispose()
End Sub
Private Sub limpiarModalDetalle()
IndexActualTabla = -1
CveMovimientoDetalleEdit = -1
txtCantidad.Enabled = True
'DdlClasificacion.Enabled = True
DdlProducto2.Enabled = True
@@ -5256,7 +5391,11 @@ Partial Class Inventarios_EntradasSalidas
End If
Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero
divPrecio.Visible = Origen = 1
txtPrecio.Visible = Origen = 1
'txtPrecio.Visible = Origen = 1
ChkContinuarRegistrando.Checked = True
ChkContinuarRegistrando.Visible = True
UpAgregar.Update()
End Sub
@@ -5875,4 +6014,6 @@ Partial Class Inventarios_EntradasSalidas
End Class

View File

@@ -1316,16 +1316,19 @@ Partial Class OS_OrdenesServicios
Next
For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows
Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero
Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero
Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero
Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero
If UsuarioActual.Empresa.Funcionalidad(578) = "" Then
For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows
Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero
Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero
Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero
Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero
If Not ObjOrdenServicio.AddUpdateDetalleMateriales(-1, CveOsDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, True) Then
Errores = True
End If
Next
End If
If Not ObjOrdenServicio.AddUpdateDetalleMateriales(-1, CveOsDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, True) Then
Errores = True
End If
Next
Else
Errores = True
@@ -1453,20 +1456,25 @@ Partial Class OS_OrdenesServicios
Next
End If
If TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows.Count > 0 Then
For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows
Dim CveMaterial As Integer = RowM("CveMaterial").ToString.ToEntero
If UsuarioActual.Empresa.Funcionalidad(578) = "" Then
If TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows.Count > 0 Then
For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows
Dim CveMaterial As Integer = RowM("CveMaterial").ToString.ToEntero
Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero
Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero
Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero
Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero
Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero
Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero
Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero
Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero
If Not ObjOrdenServicio.AddUpdateDetalleMateriales(CveMaterial, CveOSDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, SeFacturara) Then
Errores = True
End If
Next
If Not ObjOrdenServicio.AddUpdateDetalleMateriales(CveMaterial, CveOSDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, SeFacturara) Then
Errores = True
End If
Next
End If
End If
End If
Next