Validacion de usados, filtro de pendientes por surtir en compras, validacion de procesos de apoyo logistico

This commit is contained in:
2021-03-09 12:07:38 -07:00
parent 0a66620d18
commit fc7e2271e7
5 changed files with 278 additions and 201 deletions

View File

@@ -1249,7 +1249,7 @@ Public Class ClsInventarios
''' <param name="CveCompra"></param>
''' <param name="CveMovimientoRelacionado">Cuando sea cancelacion/devolucion hay que mandar este dato que seria la salida de almacen</param>
''' <returns></returns>
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1, Optional ValidaUsadosCompra As Boolean = False) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_MovimientosDetalleVirtualGet")
@@ -1258,12 +1258,18 @@ Public Class ClsInventarios
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveCompra", SqlDbType.Int).Value = CveCompra
.Add("@CveMovimientoRelacionado", SqlDbType.Int).Value = CveMovimientoRelacionado
.Add("@ValidaUsadosCompra", SqlDbType.Bit).Value = ValidaUsadosCompra
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener los movimientos virtuales.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
If ex.Message.Contains("Usados sistema") Then
OnError($"Los usados de la compra no coinciden. {ex.Message}", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Else
OnError("Ocurrió un error al obtener los movimientos virtuales.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End If
End Try
Return Retorno

View File

@@ -157,15 +157,14 @@
}
.GastoIndirectoOpciones {
margin-left:auto;
margin-right:auto;
width:400px;
margin-left: auto;
margin-right: auto;
width: 400px;
}
.GastoIndirectoOpciones td
{
text-align:right /* Or any other value */
}
.GastoIndirectoOpciones td {
text-align: right; /* Or any other value */
}
/*IPP*/
</style>
</asp:Content>
@@ -3217,12 +3216,12 @@
</div>
</div>
</div>
<div class="row" style="align-items: center" id="divDevAuto" runat="server" visible="false">
<label class="col-md-4">Devolución automática:</label>
<div class="col-md-8">
<asp:CheckBox Text="" runat="server" ID="CheckDevAuto" Visible="True" />
</div>
</div>
<div class="row" style="align-items: center" id="divDevAuto" runat="server" visible="false">
<label class="col-md-4">Devolución automática:</label>
<div class="col-md-8">
<asp:CheckBox Text="" runat="server" ID="CheckDevAuto" Visible="True" />
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnCancelarCompra2" OnClick="BtnCancelarCompra2_Click" runat="server" CssClass="btn btn-success" Text="Cancelar Compra" ValidationGroup="GrpCancelarCompra" />
@@ -4788,7 +4787,14 @@
<ajax:TabPanel ID="TabNCAlmacen" runat="server" HeaderText="Almacen">
<ContentTemplate>
<div class="row">
<div class="col-md-12 h4 text-right">
<div class="col-md-6 text-left">
<asp:UpdatePanel ID="UpMostrarTodos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:CheckBox ID="ChkMostrarTodos" Text="Mostrar Todos" runat="server" OnCheckedChanged="ChkMostrarTodos_CheckedChanged" AutoPostBack="true" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="col-md-6 h4 text-right">
Saldo: $<asp:Label Text="0.00" ID="LbNCInvSaldoAlmacen" runat="server" />
</div>
</div>

View File

@@ -6828,14 +6828,22 @@ Partial Class Compras_Compras
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'cuando es emp acumuladora
Dim Valor = (From dr1 In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").AsEnumerable()
Join dr2 In TmpDT.AsEnumerable On dr1.Field(Of Integer)("CvePSCargo") Equals dr2.Field(Of Integer)("CvePS")
Select New With
{
.Total = dr2.Field(Of Double)("Total")
}).Sum(Function(item) item.Total)
Dim Valor As Decimal = 0
For Each RowAcum As DataRow In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").Rows
Dim TotalTamanio = TmpDT.FiltroPrimeroValor("Total", $"CvePS={RowAcum("CvePSCargo")}").ToDecimal()
If TotalTamanio > 0 Then
Valor += TotalTamanio
End If
Next
importeMovimiento += Valor.ToDecimal
'Dim Valor = (From dr1 In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").AsEnumerable()
' Join dr2 In TmpDT.AsEnumerable On dr1.Field(Of Integer)("CvePSCargo") Equals dr2.Field(Of Integer)("CvePS")
' Select New With
' {
' .Total = dr2.Field(Of Double)("Total")
' }).Sum(Function(item) item.Total)
importeMovimiento += Valor
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
End If
@@ -19063,21 +19071,24 @@ Partial Class Compras_Compras
CargaAnticipos(CveProveedor, If(ChkNCInv.Checked, "NC", "-1"))
UpAnticipos.Update()
End Sub
Private Sub CargaNCINV()
Private Sub CargaNCINV(Optional ShowAllPendientes As Boolean = False)
Dim SaldoAnticipo = 0.0
Dim CveCompras As String = ""
If ChkNCInvNC.Checked Then
For Each gvr As GridViewRow In GvFacturaNC.Rows
If gvr.FCCheckBox("ChkFacturaNC") IsNot Nothing AndAlso gvr.FCCheckBox("ChkFacturaNC").Checked Then
SaldoAnticipo += gvr.FCTextBox("TxtImporte").Text.ToDouble
If CveCompras <> "" Then
CveCompras = $"{CveCompras},{gvr.DataKey("CveCompra").ToString}"
Else
CveCompras = gvr.DataKey("CveCompra").ToString
If Not ShowAllPendientes Then
For Each gvr As GridViewRow In GvFacturaNC.Rows
If gvr.FCCheckBox("ChkFacturaNC") IsNot Nothing AndAlso gvr.FCCheckBox("ChkFacturaNC").Checked Then
SaldoAnticipo += gvr.FCTextBox("TxtImporte").Text.ToDouble
If CveCompras <> "" Then
CveCompras = $"{CveCompras},{gvr.DataKey("CveCompra").ToString}"
Else
CveCompras = gvr.DataKey("CveCompra").ToString
End If
End If
End If
Next
Next
End If
Else
For Each gvr As GridViewRow In GVAnticipos.Rows
If gvr.FCCheckBox("Chk") IsNot Nothing AndAlso gvr.FCCheckBox("Chk").Checked Then
@@ -19092,7 +19103,6 @@ Private Sub CargaNCINV()
End If
LbNCInvSaldo.Text = SaldoAnticipo.FormatoNumero()
LbNCInvSaldoAlmacen.Text = SaldoAnticipo.FormatoNumero()
@@ -19109,11 +19119,14 @@ Private Sub CargaNCINV()
GVNCInv.DataSource = DtPendientesAlmacen
GVNCInv.DataBind()
If Not String.IsNullOrEmpty(CveCompras) Then
DtPendientesAlmacen = DtPendientesAlmacen.FiltraParametros($"CveCompra IN ({CveCompras})")
End If
GVNCInvAlmacen.DataSource = DtPendientesAlmacen
GVNCInvAlmacen.DataBind()
End If
Else
If ChkNCInvNC.Checked Then
Alert("Niguna de las facturas seleccionadas cuenta con productos pendientes de darles entrada.", TipoMensaje.MsgAdvertencia)
@@ -20373,7 +20386,7 @@ Private Sub CargaNCINV()
Protected Sub BtnFacturaNC_Click(sender As Object, e As EventArgs)
If ChkNCInvNC.Checked Then
CargaNCINV()
CargaNCINV(ShowAllPendientes:=False)
TabModoNC.ActiveTabIndex = 1
TabModoNC_ActiveTabChanged(TabModoNC, EventArgs.Empty)
@@ -20720,9 +20733,11 @@ Private Sub CargaNCINV()
End Sub
Protected Sub ChkMostrarTodos_CheckedChanged(sender As Object, e As EventArgs)
CargaNCINV(ShowAllPendientes:=True)
UpFacturaNC.Update()
UpMostrarTodos.Update()
End Sub
End Class
Public Class MMensajeDevolucion

View File

@@ -2799,7 +2799,7 @@ Partial Class Inventarios_RecepcionAlmacen
'VERIFICA SI TIENE ALMACEN VIRTUAL
If CveAlmacenVirtual > 0 Then
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveCompra:=CveCompraSurtir, ValidaUsadosCompra:=SumarImporteUsados) Then
DtPSVirtual = ObjInventario.DtResultados
End If
@@ -2994,7 +2994,7 @@ Partial Class Inventarios_RecepcionAlmacen
CveMovimientoRef = CveMovimiento
End If
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoRef, UsuarioActual.CveEmpresa) Then
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoRef, UsuarioActual.CveEmpresa, CveCompra:=CveCompraSurtir, ValidaUsadosCompra:=SumarImporteUsados) Then
DtPSVirtual = ObjInventario.DtResultados
End If

View File

@@ -846,8 +846,6 @@ Partial Class ProductosyServicios
DdlMoneda.SelectedValueExist(ObjProductosServicios.CveMoneda)
TxtRetISR.Text = (ObjProductosServicios.RetISR * 100).ToString
DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString)
DdlModelo.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveModelo").ToString)
DdlMedida.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveMedida").ToString)
DdlRin.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveRinTamaño").ToString)
@@ -862,6 +860,34 @@ Partial Class ProductosyServicios
Try
DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing)
DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString)
If DdlTamanio.SelectedValue.ToEntero() > 0 Then
Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString)
'SI ES MOTOBATERIA
If DdlClasificacion.SelectedValue = "20517" Then
DebeTenerTamanio = True
End If
'VALIDA QUE EL PRODUCTO, NO ES ACUMULADOR QUE NO TENGA TAMAÑO
If Not DebeTenerTamanio AndAlso DdlTamanio.SelectedValue.ToEntero() > 0 Then
Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' no debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia)
RfvDdlTamanio.Visible = False
CERfvDdlTamanio.Enabled = False
End If
'VALIDA QUE EL PRODUCTO, SI ES ACUMULADOR QUE TENGA TAMAÑO
If DebeTenerTamanio AndAlso DdlTamanio.SelectedValue.ToEntero() <= 0 Then
Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia)
End If
DvTamanio.Visible = True
End If
Catch ex As Exception
End Try
@@ -1195,182 +1221,209 @@ Partial Class ProductosyServicios
End If
Dim CveTamaño As Integer = DdlTamanio.SelectedValue.ToEntero
'VALIDAR TAMAÑOS Y ACUMULADORES
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0)
Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString)
'SI ES MOTOBATERIA
If DdlClasificacion.SelectedValue = "20517" Then
DebeTenerTamanio = True
End If
'VALIDA QUE EL PRODUCTO, NO ES ACUMULADOR QUE NO TENGA TAMAÑO
If Not DebeTenerTamanio AndAlso CveTamaño > 0 Then
Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' no debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia)
Return
End If
'VALIDA QUE EL PRODUCTO, SI ES ACUMULADOR QUE TENGA TAMAÑO
If DebeTenerTamanio AndAlso CveTamaño <= 0 Then
Alert($"Un producto/servicio con la clasificación '{Dr("Clasificacion")}' debe tener especificado un tamaño.", TipoMensaje.MsgAdvertencia)
Return
End If
End If
Dim ObjProductosServicios As New ClsProductosServicios()
Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL())
Dim TieneError = False
Dim AccionJS = ""
Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1)
Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1)
Try
Dim CveProveedor As Integer = -1
If DdlProveedor.txtValue.Value.ToEntero > 0 Then
CveProveedor = DdlProveedor.txtValue.Value.ToEntero
End If
Dim EsPaquete As Integer = If(gvPaqueteDetalle.Rows.Count = 0, 0, 1)
Dim CveMetodoInv As Integer = If(UsuarioActual.Empresa.UsaInventarios, ddlMetodos.SelectedValue.ToEntero, -1)
Dim CveMarca As Integer = 0
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero
Dim TiempoCaducidad As Integer = -1
If ChkCaducidad.Checked Then
If TxtTiempoCaducidad.Text.Length > 0 AndAlso IsNumeric(TxtTiempoCaducidad.Text) Then
TiempoCaducidad = TxtTiempoCaducidad.Text.ToEntero()
Else
Alert("Falta indicar el tiempo de caducidad", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
If CvePS = -1 Then
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero,
FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) > 0 Then
ViewState("CvePS") = ObjProductosServicios.CvePS
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero)
End If
Next
'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;")
AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";"
If Not TieneError Then
For Each Dr As DataRow In DtSeccionAlmacen.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 Then
If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
End If
Next
End If
If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True)
End If
Else
TieneError = True
Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
Else
If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then
TxtCodigoBarras.Text = CodigoBarrasCargado
Dim CveProveedor As Integer = -1
If DdlProveedor.txtValue.Value.ToEntero > 0 Then
CveProveedor = DdlProveedor.txtValue.Value.ToEntero
End If
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
Dim CveMarca As Integer = 0
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) And CvePS = -1 Then CveMarca = DdlMarcaPSDes.SelectedValue.ToEntero Else CveMarca = DdlMarca.SelectedValue.ToEntero
If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, txtcodigo2.text.trim, TxtCodigoBarras.Text.Trim, PSS,
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero,
CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=DdlTamanio.SelectedValue.ToEntero,
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked,
AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) Then
If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
TieneError = True
Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Dim TiempoCaducidad As Integer = -1
If ChkCaducidad.Checked Then
If TxtTiempoCaducidad.Text.Length > 0 AndAlso IsNumeric(TxtTiempoCaducidad.Text) Then
TiempoCaducidad = TxtTiempoCaducidad.Text.ToEntero()
Else
Alert("Falta indicar el tiempo de caducidad", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
If Not TieneError Then
If CvePS = -1 Then
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
If ObjProductosServicios.AddPS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, "", TxtCodigoBarras.Text.Trim, PSS,
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero,
FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=CveTamaño,
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) > 0 Then
ViewState("CvePS") = ObjProductosServicios.CvePS
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then
ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero)
End If
Next
'Alert("El Producto o Servicio se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href= "" / ProductosServicios.aspx?CvePS=" & ObjProductosServcios.CvePS.ToString & """;")
AccionJS = "document.location.href=""/Ventas/CatPS.aspx"";"
If Not TieneError Then
For Each Dr As DataRow In DtSeccionAlmacen.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 Then
If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
End If
Next
End If
If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True)
End If
Else
TieneError = True
Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
Else
If CodigoBarrasCargado.Length > 0 And TxtCodigoBarras.Text.Length = 0 Then
TxtCodigoBarras.Text = CodigoBarrasCargado
End If
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
If ObjProductosServicios.UpdatePS(DdlClasificacion.SelectedValue.ToEntero, -1, DdlUnidadMedida.SelectedValue.ToEntero, TxtCodigo.Text.Trim, TxtCodigo2.Text.Trim, TxtCodigoBarras.Text.Trim, PSS,
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero,
CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
CveUsuarioModifico:=UsuarioActual.CveUsuario, CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=CveTamaño,
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked,
AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) Then
If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
TieneError = True
Alert("Ocurrió un Error al regenerar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
If Not TieneError Then
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
If Not ObjProductosServicios.AddPSImpuestosLocales(CvePS, GVR.DataKey("CveImpuestoLocal").ToEntero) Then
TieneError = True
Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
End If
Next
End If
AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";")
'UpDatos.Update()
'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS)
If Not TieneError Then
For Each Dr As DataRow In DtSeccionAlmacen.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
End If
Next
End If
If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, False)
End If
Else
TieneError = True
Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjProductosServicios.CvePS = CvePS
End If
If ObjProductosServicios.CvePS > 0 And Not TieneError Then
For i As Integer = 0 To gvSucursal.Rows.Count - 1
If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then
If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then
TieneError = True
Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
Else
If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then
'Actualizarlo
If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
TieneError = True
Alert("Ocurrió un Error al agregar los impuestos locales. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
Else
'Insertarlo
'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
TieneError = True
Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
End If
Next
End If
AccionJS = If(Ret = "Comp", "ircompras();", "document.location.href=""/Ventas/CatPS.aspx"";")
'UpDatos.Update()
'Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, AccionJS)
If Not TieneError Then
For Each Dr As DataRow In DtSeccionAlmacen.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Not Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
If Not ObjInv.AddProductosServiciosAlmacenSeccion(CvePS, Dr("CveAlmacen").ToString.ToEntero, Dr("CveAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
ElseIf Not Dr("CveAlmacen").ToString.ToEntero > 0 AndAlso Dr("CvePSAlmacenSeccion").ToString.ToEntero > 0 Then
If Not ObjInv.RemoveProductosServiciosAlmacenSeccion(Dr("CvePSAlmacenSeccion").ToString.ToEntero) Then
TieneError = True
End If
End If
Next
End If
If UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso ChkAplicaParaVenta.Checked Then
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, False)
End If
Else
TieneError = True
Alert("Ocurrió un Error al actualizar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
Next
End If
ObjProductosServicios.CvePS = CvePS
End If
If ObjProductosServicios.CvePS > 0 And Not TieneError Then
For i As Integer = 0 To gvSucursal.Rows.Count - 1
If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked = False Then
If Not ObjProductosServicios.RemovePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero) Then
TieneError = True
Alert("Ocurrió un Error al eliminar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
Else
If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then
'Actualizarlo
If Not ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
TieneError = True
Alert("Ocurrió un Error al actualizar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
'ObjProductosServicios.UpdatePSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
Else
'Insertarlo
'ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCHiddenField("hdnCveSucursal").Value.ToEntero, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, UsuarioActual.CveUsuario)
If Not ObjProductosServicios.AddPSSucursales(ObjProductosServicios.CvePS, gvSucursal.Rows(i).FCTextBox("txtImporte").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, gvSucursal.Rows(i).FCTextBox("TxtMaximo").Text.ToDouble, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal) Then
TieneError = True
Alert("Ocurrió un Error al agregar sucursales del producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Exit For
End If
End If
End If
Next
End If
If ObjProductosServicios.CvePS > 0 And Not TieneError Then
TieneError = GuardaEcommerce()
End If
If ObjProductosServicios.CvePS > 0 And Not TieneError Then
TieneError = GuardaEcommerce()
End If
Catch ex As Exception
TieneError = True
OnError("Ocurrió un error al guardar al guardar el producto/servicio.", ex)
End Try
If Not TieneError Then
ObjProductosServicios.Commit()
@@ -2103,13 +2156,11 @@ Partial Class ProductosyServicios
MostarOcultarDivTamanio(True)
End If
Catch ex As Exception
OnError("Ocurrió un error al mostrar los tamaños", ex)
End Try
End Sub
Sub MostarOcultarDivTamanio(Mostrar As Boolean)
Private Sub MostarOcultarDivTamanio(Mostrar As Boolean)
If Mostrar And UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DvTamanio.Visible = True
Else
@@ -2117,7 +2168,6 @@ Partial Class ProductosyServicios
DdlTamanio.SelectedValueExist("-1")
End If
UpDatos.Update()
End Sub