diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index c628638aa..8f1c3a848 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -14703,7 +14703,7 @@ Partial Class Compras_Compras If TxtFecha.Text.ToDate.Month < TxtFechaCancelacion.Text.ToDate.Month Or TxtFecha.Text.ToDate.Year < TxtFechaCancelacion.Text.ToDate.Year Or DdlTipoComprobante.SelectedValue.Contiene("NC") Then 'CREA POLIZA NEGATIVA - If IdPoliza > 0 AndAlso ObjAC IsNot Nothing Then + If IdPoliza > 0 AndAlso ObjAC IsNot Nothing AndAlso UsuarioActual.Empresa.UsaAC Then If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then dt = ObjAC.DtResultados @@ -14741,7 +14741,7 @@ Partial Class Compras_Compras If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero, dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero, dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, - dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("CveAcreedor").ToString.ToEntero, dr("CveColectiva").ToString.ToEntero, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero, + dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero, ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero, CveCompraAmortizacion:=dr("CveCompraAmortizacion").ToString.ToEntero) Then ErrorCancelar = True @@ -14765,7 +14765,7 @@ Partial Class Compras_Compras If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero, dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero, dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, - dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, dr("CveAcreedor").ToString.ToEntero, dr("CveColectiva").ToString.ToEntero, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero, + dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero, CveCuenta:=dr("CveCuenta").ToString.ToEntero, ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero) Then ErrorCancelar = True Exit For diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index 6d37128bf..ff5467b8a 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -68,6 +68,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2); DdlCuenta.DataBind(); + DdlCuenta.Items.Insert(0, new ListItem("Todos", "-1")); } public void Consulta() diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 245310417..8e68f2b23 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -1237,14 +1237,15 @@ Partial Class General_SaldosIniciales Dim TipoDocto As String = Row("Tipo Documento").ToString Dim CveProveedor As Integer = DtProveedores.FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero GuardaLog(Sucursal + " - " + Row("Sucursal").ToString) - Dim RetIVA As Double = Row("Ret IVA").ToString.ToDouble - Dim RetISR As Double = Row("Ret ISR").ToString.ToDouble + Dim RetIVA As Decimal = Row("Ret IVA").ToString.ToDecimal + Dim RetISR As Decimal = Row("Ret ISR").ToString.ToDecimal Dim IEPS As Decimal = Row("IEPS").ToString.ToDecimal Dim Moneda As String = Row("Moneda").ToString Dim TipoCambio As String = Row("Tipo Cambio").ToString Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString.ToDate Dim CveMoneda As Integer = 1 Dim CveProveedorSucursal As Integer = Row("CveProveedorSucursal").ToString.ToEntero + Dim PorcentajeIVA As String = Row("PorcentajeIVA").ToString If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorCompras = True @@ -1252,7 +1253,7 @@ Partial Class General_SaldosIniciales If Not CveProveedor > 0 Then Alert(String.Format("No se encontró el Proveedor con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorCompras = True : Exit For If Not CveProveedorSucursal > 0 Then CveProveedorSucursal = -1 - TipoDocto = IIf(TipoDocto.ToUpper = "INGRESOS", "Fac", "NC").ToString + TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESOS", "INGRESO", "ING"), "Fac", "NC").ToString 'Temporalmente SE BORRARA @@ -1261,9 +1262,9 @@ Partial Class General_SaldosIniciales Dim CodProvee As String = "" 'Row("CodProvee2").ToString 'Moneda - If Moneda = "Pesos" Then + If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then CveMoneda = 1 - ElseIf Moneda = "Dólares" Then + ElseIf Moneda.ToUpper.Contiene("DOLARES", "DOLAR", "USD", "DÓLARES") Then CveMoneda = 2 End If @@ -1287,7 +1288,7 @@ Partial Class General_SaldosIniciales 'Compra If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio2, CveProveedor.ToEntero, SubTotal, 0, 0, IVA, RetIVA, RetISR, IEPS, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDouble, FechaVencimiento, False, CodProvee, 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorSucursal:=CveProveedorSucursal, - NumeroReembolso:=Transaccion, PorcentajeIVA:=0.16) Then + NumeroReembolso:=Transaccion, PorcentajeIVA:=PorcentajeIVA.ToDecimal) Then ErrorCompras = True Exit For End If @@ -1308,6 +1309,10 @@ Partial Class General_SaldosIniciales If IEPS > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, IEPS, Folio, 25, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=IEPS, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For + If RetIVA > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetIVA, Folio, 15, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=RetIVA, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For + If RetISR > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, Folio, 16, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=RetISR, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For + + 'Saldo If Saldo < Total Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Folio, 17, Folio, Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Total - Saldo) Then ErrorCompras = True : Exit For diff --git a/Inventarios/AjustesSeccionAlmacen.aspx b/Inventarios/AjustesSeccionAlmacen.aspx index ea8e354af..3e8855dea 100644 --- a/Inventarios/AjustesSeccionAlmacen.aspx +++ b/Inventarios/AjustesSeccionAlmacen.aspx @@ -73,7 +73,7 @@ - + <%----%> @@ -91,7 +91,7 @@ - + @@ -102,8 +102,8 @@ -
- +
+ diff --git a/Inventarios/Consignaciones.aspx.vb b/Inventarios/Consignaciones.aspx.vb index a98290c76..8da1e3b5e 100644 --- a/Inventarios/Consignaciones.aspx.vb +++ b/Inventarios/Consignaciones.aspx.vb @@ -595,9 +595,9 @@ Partial Class Inventarios_Consignaciones Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero Dim SeccionAlmacen As String = DdlSeccionAlmacen.SelectedItem.Text - Dim Serie As String = If(TxtSerie.Text = "", "-1", TxtSerie.Text) - Dim Lote As String = If(TxtLote.Text = "", "-1", TxtLote.Text) - Dim Caducidad As String = If(TxtCaducidad.Text = "", "-1", TxtCaducidad.Text) + Dim Serie As String = If(TxtSerie.Text = "", "", TxtSerie.Text) + Dim Lote As String = If(TxtLote.Text = "", "", TxtLote.Text) + Dim Caducidad As String = If(TxtCaducidad.Text = "", MinFecha.ToShortDateString, TxtCaducidad.Text) Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("") @@ -634,6 +634,15 @@ Partial Class Inventarios_Consignaciones GvDatos.DataSource = DtMovimientos GvDatos.DataBind() + + If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then + GvDatos.Columns(7).Visible = DtMovimientos.MAX("CveSeccionAlmacen").ToEntero > 0 + GvDatos.Columns(8).Visible = DtMovimientos.MAX("Serie") <> "" + GvDatos.Columns(9).Visible = DtMovimientos.MAX("Lote") <> "" + GvDatos.Columns(10).Visible = DtMovimientos.MAX("FechaCaducidad").ToDate > MinFecha + + End If + TxtCantidad.Text = "" TxtPU.Text = "" LbTotal.Text = "" diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 7dd85fdfa..20e6e8e4e 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -1259,6 +1259,13 @@ Partial Class Inventarios_EntradasSalidas Alert("El producto requiere Serie", TipoMensaje.MsgAdvertencia) End If + If RowPS("VentaMinima").ToString.ToDecimal > 0 Then + If Cantidad Mod RowPS("VentaMinima").ToString().ToDecimal <> 0 Then + Alert(String.Format("El producto se vende solo en cantidades de {0}", RowPS("VentaMinima").ToString())) + Valido = False + End If + End If + 'salida If Valido AndAlso DdlConcepto.SelectedValue.Contiene({"3", "5", "7", "8", "11", "12", "13", "15", "16", "17", "20", "21", "30", "31"}) Then ' salida de almacen diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx index 7b0398fbb..2bbd9cffe 100644 --- a/Inventarios/EntregaAlmacen.aspx +++ b/Inventarios/EntregaAlmacen.aspx @@ -516,7 +516,7 @@ - + diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index e21187015..499598d68 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -851,6 +851,7 @@ Partial Class Inventarios_EntregaAlmacen If AplicaCaducidad Then GvDatos.Columns(9).Visible = True GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad") + SugerirFechaLote() End If GvDatos.DataSource = DtDatos @@ -3819,5 +3820,85 @@ Partial Class Inventarios_EntregaAlmacen End Sub #End Region +#Region "sugerir caducidad" + Private Sub SugerirFechaLote() + Dim ObjInventarios As New ClsInventarios() + Dim FechasExcluidas As New List(Of String) + FechasExcluidas.Add(MinFecha.ToDate.ToString) + Dim MaxRows As Integer = DtDatos.Rows.Count - 1 + For contador As Integer = 0 To MaxRows + Dim DtRow As DataRow = DtDatos.Rows(contador) + Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True" + Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True" + Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero + Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas)) + If AplicaCaducidad Or AplicaLote Then + Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero + If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + If ObjInventarios.DtResultados.Rows.Count > 0 Then + Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad") + DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString + DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString + Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero + DtRow.Item("CantidadF") = CantidadDisponible + DtRow.Item("CantidadS") = CantidadDisponible + + If Cantidad > CantidadDisponible Then + Dim RowFaltante As DataRow = DtDatos.NewRow() + Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible) + RowFaltante.Item("CantidadC") = CantidadFaltante + RowFaltante.Item("CantidadF") = CantidadFaltante + RowFaltante.Item("CantidadS") = CantidadFaltante + DtRow.Item("CantidadC") = CantidadDisponible + For Each Column As DataColumn In DtDatos.Columns + If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then + RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName) + End If + Next + FechasExcluidas.Add(MinimumRow.Item("FechaCaducidad").ToString) + DtDatos.Rows.Add(RowFaltante) + MaxRows += 1 + Else + DtRow.Item("CantidadF") = Cantidad + End If + End If + End If + End If + Next + + 'For Each DtRow As DataRow In DtDatos.Rows + ' Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True" + ' Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True" + ' Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero + ' Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas)) + ' If AplicaCaducidad Or AplicaLote Then + ' Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero + ' If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + ' Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad") + ' DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString + ' DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString + ' Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero + ' DtRow.Item("CantidadF") = CantidadDisponible + + ' If Cantidad > CantidadDisponible Then + ' Dim RowFaltante As DataRow = DtDatos.NewRow() + ' RowFaltante.Item("CantidadC") = (Cantidad - CantidadDisponible) + ' RowFaltante.Item("CantidadF") = (Cantidad - CantidadDisponible) + ' RowFaltante.Item("CantidadS") = (Cantidad - CantidadDisponible) + ' For Each Column As DataColumn In DtDatos.Columns + ' If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then + ' RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName) + ' End If + ' Next + + ' DtDatos.Rows.Add(RowFaltante) + ' End If + ' End If + ' End If + 'Next + ObjInventarios.Dispose() + End Sub + +#End Region End Class diff --git a/Inventarios/Kardex.aspx b/Inventarios/Kardex.aspx index d5fdfdc19..4b82deae4 100644 --- a/Inventarios/Kardex.aspx +++ b/Inventarios/Kardex.aspx @@ -4,6 +4,11 @@