This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2025-01-06 03:59:50 -07:00
30 changed files with 8036 additions and 1364 deletions

View File

@@ -137,6 +137,7 @@ Partial Class Acumuladores_Tamaños
UpGral.Update() UpGral.Update()
Alert("Tamaño Agregado Correctamente", TipoMensaje.MsgInformacion) Alert("Tamaño Agregado Correctamente", TipoMensaje.MsgInformacion)
GlobalDTAcumTamaños(UsuarioActual.CveEmpresa) = Nothing
Else Else
Alert("Ocurrio un error al guardar el Tamaño", TipoMensaje.MsgError) Alert("Ocurrio un error al guardar el Tamaño", TipoMensaje.MsgError)
End If End If
@@ -156,6 +157,7 @@ Partial Class Acumuladores_Tamaños
UpGral.Update() UpGral.Update()
Alert("Tamaño Actualizado Correctamente", TipoMensaje.MsgInformacion) Alert("Tamaño Actualizado Correctamente", TipoMensaje.MsgInformacion)
GlobalDTAcumTamaños(UsuarioActual.CveEmpresa) = Nothing
Else Else
Alert("Ocurrio un error al Actualizar el Tamaño", TipoMensaje.MsgError) Alert("Ocurrio un error al Actualizar el Tamaño", TipoMensaje.MsgError)
End If End If

View File

@@ -1631,7 +1631,7 @@ Public Class ClsVentas
Return Retorno Return Retorno
End Function End Function
Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1) As Boolean Public Function UpdateVentaDetalleRemision(CveVenta As Integer, CvePS As Integer, Cantidad As Decimal, PU As Decimal, IEPS As Decimal, PorcentajeIEPS As Decimal, IVA As Decimal, PorcentajeIVA As Decimal, Descuento As Decimal, Observaciones As String, Optional CveUsuarioModifico As Integer = -1, Optional CvePromocionDetalle As Integer = -1) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_VentasDetalleRemisionUpdate") DataAdapter("PA_VentasDetalleRemisionUpdate")
@@ -1647,6 +1647,7 @@ Public Class ClsVentas
.Add("@Descuento", SqlDbType.Decimal).Value = Descuento .Add("@Descuento", SqlDbType.Decimal).Value = Descuento
.Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones .Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones
.Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
.Add("@CvePromocionDetalle", SqlDbType.Int).Value = CvePromocionDetalle
End With End With
Try Try

View File

@@ -846,7 +846,7 @@ Namespace Extensiones
Dim buttonParameters As Newtonsoft.Json.Linq.JArray = New Newtonsoft.Json.Linq.JArray( Dim buttonParameters As Newtonsoft.Json.Linq.JArray = New Newtonsoft.Json.Linq.JArray(
New Newtonsoft.Json.Linq.JObject( New Newtonsoft.Json.Linq.JObject(
New Newtonsoft.Json.Linq.JProperty("type", "text"), New Newtonsoft.Json.Linq.JProperty("type", "text"),
New Newtonsoft.Json.Linq.JProperty("text", "https://sig.adssistemas.mx.com/Clientes/Clientes.aspx?CveCliente=1") New Newtonsoft.Json.Linq.JProperty("text", LigaBoton)
) )
) )
' Crear el componente "button" ' Crear el componente "button"

View File

@@ -180,7 +180,7 @@
<label style="width: 100px;">Forma de Pago:</label> <label style="width: 100px;">Forma de Pago:</label>
</div> </div>
<div class="col-md-1" runat="server" id="divTipoPago" > <div class="col-md-1" runat="server" id="divTipoPago" >
<asp:DropDownList ID="DdlTipoDeposito" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="NumCuentaMoneda" AutoPostBack="true" DataValueField="CveCuenta" OnSelectedIndexChanged="DdlTipoPago_SelectedIndexChanged" Class="table-group-action-input form-control input-inline input-small input-sm select2me" > <asp:DropDownList ID="DdlTipoDeposito" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Class="table-group-action-input form-control input-inline input-small input-sm select2me" >
<asp:ListItem Value="-1" Text="Seleccione" Selected="True"></asp:ListItem> <asp:ListItem Value="-1" Text="Seleccione" Selected="True"></asp:ListItem>
<asp:ListItem Value="13" Text="Efectivo"></asp:ListItem> <asp:ListItem Value="13" Text="Efectivo"></asp:ListItem>
<asp:ListItem Value="3" Text="Cheque"></asp:ListItem> <asp:ListItem Value="3" Text="Cheque"></asp:ListItem>

View File

@@ -234,6 +234,12 @@ Partial Class Bancos_DepositosCaja
TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA
End If End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then
Alert("No se ha especificado un importe a depositar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim OcurrioError As Boolean = False Dim OcurrioError As Boolean = False
Dim NuevaCvePrePoliza As Integer Dim NuevaCvePrePoliza As Integer
@@ -621,6 +627,8 @@ Partial Class Bancos_DepositosCaja
DDlMesesSinIntereses.Visible = False DDlMesesSinIntereses.Visible = False
End If End If
DDlMesesSinIntereses.SelectedValue = "-1" DDlMesesSinIntereses.SelectedValue = "-1"
UPPFiltros.Update()
End Sub End Sub
Private Function ImpresionDirectaPDF(CveIEOrigen As Integer, CvePrePoliza As Integer) As String Private Function ImpresionDirectaPDF(CveIEOrigen As Integer, CvePrePoliza As Integer) As String

View File

@@ -113,11 +113,11 @@ Partial Class Bancos_RepCortes
End If End If
Else Else
If UsuarioActual.CveRol = 1 Then If UsuarioActual.CveRol = 1 Then
If e.Row.DBCampo("VentasCorte").ToDecimal.RoundSQL <> e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal.RoundSQL Then If e.Row.DBCampo("VentasCorte").ToDecimal <> e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal Then
e.Row.Cells(2).ForeColor = Drawing.Color.Red e.Row.Cells(2).ForeColor = Drawing.Color.Red
e.Row.Cells(2).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal)).ToString e.Row.Cells(2).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentaTotalIngreso").ToDecimal + e.Row.DBCampo("VentaTotalRemision").ToDecimal)).ToString
End If End If
If e.Row.DBCampo("VentasCorte").ToDecimal.RoundSQL <> e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal.RoundSQL Then If e.Row.DBCampo("VentasCorte").ToDecimal <> e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal Then
e.Row.Cells(6).ForeColor = Drawing.Color.Red e.Row.Cells(6).ForeColor = Drawing.Color.Red
e.Row.Cells(6).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal)).ToString e.Row.Cells(6).ToolTip = (e.Row.DBCampo("VentasCorte").ToDecimal - (e.Row.DBCampo("VentasContado").ToDecimal + e.Row.DBCampo("VentasCredito").ToDecimal)).ToString
End If End If
@@ -283,15 +283,26 @@ Partial Class Bancos_RepCortes
GvIngresosRetiros.DataBind() GvIngresosRetiros.DataBind()
If UsuarioActual.CveEmpresa.Contiene(189, 193, 195, 196, 197) Then If UsuarioActual.CveEmpresa.Contiene(189, 193, 195, 196, 197) Then
DivAnexo.Visible = True
Dim CveCuenta As Integer = 0 Dim CveCuenta As Integer = 0
CveCuenta = If(UsuarioActual.CveEmpresa = 193, 186367, 0) 'obtener relación contable
If DdlSubProyectos.SelectedValue = "12756" Then 'nav Dim objC As New ClsContabilidad
CveCuenta = 188796 If objC.GetCuentasAsignaciones(UsuarioActual.CveEmpresa, 30) Then
End If 'obtengo la cvecuentabancaria
If DdlSubProyectos.SelectedValue = "12755" Then 'hillo Dim tCveBancoCuenta As Integer = GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa, Estatus:=-1, CveTipoCuenta:=1).FiltroPrimeroValor("CveCuenta", $"CveSubProyecto = {DdlSubProyectos.SelectedValue}").ToEntero
CveCuenta = 188795 CveCuenta = objC.DtResultados.FiltroPrimeroValor("CveCuenta", $"CveBancoCuenta = {tCveBancoCuenta}").ToEntero
End If End If
objC.Dispose()
DivAnexo.Visible = True
'CveCuenta = If(UsuarioActual.CveEmpresa = 193, 186367, 0)
'If DdlSubProyectos.SelectedValue = "12756" Then 'nav
' CveCuenta = 188796
'End If
'If DdlSubProyectos.SelectedValue = "12755" Then 'hillo
' CveCuenta = 188795
'End If
'obtener la cuen
Using ObjConta As New ClsContabilidad Using ObjConta As New ClsContabilidad
If ObjConta.GetAnexoCatalogo(CveCuenta, Fecha.ToDate(), Fecha.ToDate(), -1, -1, -1, UsuarioActual.CveEmpresa, 1) Then If ObjConta.GetAnexoCatalogo(CveCuenta, Fecha.ToDate(), Fecha.ToDate(), -1, -1, -1, UsuarioActual.CveEmpresa, 1) Then

View File

@@ -5585,6 +5585,9 @@ Partial Class Compras_Compras
Dim listalmacenes As List(Of Integer) = (From cvealmacen In DtInv.AsEnumerable() Where cvealmacen.Field(Of Integer)("cvealmacen") > 0 Select cvealmacen.Field(Of Integer)("cvealmacen")).Distinct().ToList Dim listalmacenes As List(Of Integer) = (From cvealmacen In DtInv.AsEnumerable() Where cvealmacen.Field(Of Integer)("cvealmacen") > 0 Select cvealmacen.Field(Of Integer)("cvealmacen")).Distinct().ToList
For Each tcvealmacen As Integer In listalmacenes For Each tcvealmacen As Integer In listalmacenes
Dim ObsGDiaz As String = If(EsGrupoDiaz, TxtObsFact.Text, "")
If GvInv.Rows(indice).FCDropDownList("ddlrecibirinv").SelectedValue = "1" Then If GvInv.Rows(indice).FCDropDownList("ddlrecibirinv").SelectedValue = "1" Then
Continue For Continue For
End If End If
@@ -5594,7 +5597,7 @@ Partial Class Compras_Compras
If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS() If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS()
folio = ObjInventario.GetFolioSiguiente(2, UsuarioActual.CveEmpresa) folio = ObjInventario.GetFolioSiguiente(2, UsuarioActual.CveEmpresa)
cvemovimientoentrada = ObjInventario.AddMovimiento(tcvealmacen, 2, 1, fecha, folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Comp/G4") cvemovimientoentrada = ObjInventario.AddMovimiento(tcvealmacen, 2, 1, fecha, folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Comp/G4", Observaciones:=ObsGDiaz)
If cvemovimientoentrada <= 0 Then If cvemovimientoentrada <= 0 Then
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
@@ -5618,7 +5621,7 @@ Partial Class Compras_Compras
'agregamos la salida 'agregamos la salida
folio = ObjInventario.GetFolioSiguiente(3, UsuarioActual.CveEmpresa) folio = ObjInventario.GetFolioSiguiente(3, UsuarioActual.CveEmpresa)
cvemovimientosalidagasto = ObjInventario.AddMovimiento(tcvealmacen, 3, DdlMoneda.SelectedValue.ToEntero, fecha.AddSeconds(1), folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G3") cvemovimientosalidagasto = ObjInventario.AddMovimiento(tcvealmacen, 3, DdlMoneda.SelectedValue.ToEntero, fecha.AddSeconds(1), folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G3", Observaciones:=ObsGDiaz)
If cvemovimientosalidagasto <= 0 Then If cvemovimientosalidagasto <= 0 Then
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
@@ -5684,6 +5687,8 @@ Partial Class Compras_Compras
If (DdlTipoComprobante.SelectedValue = "Fac" AndAlso CveCompraRefacturacion <= 0) OrElse CveConceptoMovimiento = 13 Then If (DdlTipoComprobante.SelectedValue = "Fac" AndAlso CveCompraRefacturacion <= 0) OrElse CveConceptoMovimiento = 13 Then
Dim ObsGDiaz As String = If(EsGrupoDiaz, TxtObsFact.Text, "")
For Each tCveAlmacen As Integer In ListAlmacenes For Each tCveAlmacen As Integer In ListAlmacenes
If GvInv.Rows(indice).FCDropDownList("DdlRecibirInv").SelectedValue = "1" Then If GvInv.Rows(indice).FCDropDownList("DdlRecibirInv").SelectedValue = "1" Then
Continue For Continue For
@@ -5693,7 +5698,7 @@ Partial Class Compras_Compras
Dim fecha As Date = TxtFecha.Text.ToDate Dim fecha As Date = TxtFecha.Text.ToDate
If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS() If Not UsuarioActual.Empresa.UsaAC Then fecha = NowADS()
CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), CveFolioGarantia:=tCveFolioGarantia, Modulo:="Comp/G2", CveEntregaAlmacen:=tCveEntregaAlmacen) CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), CveFolioGarantia:=tCveFolioGarantia, Modulo:="Comp/G2", CveEntregaAlmacen:=tCveEntregaAlmacen, Observaciones:=ObsGDiaz)
If CveMovimientoInventario <= 0 Then If CveMovimientoInventario <= 0 Then
ErrorMovInv = True ErrorMovInv = True

View File

@@ -1599,7 +1599,7 @@ Partial Class PopUpVerFactura
Dim Fecha As String = "", Nombre As String = "" Dim Fecha As String = "", Nombre As String = ""
Dim OpcionDetallado As Integer = 1 Dim OpcionDetallado As Integer = 1
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then OpcionDetallado = 2 If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(197, 189) Then OpcionDetallado = 2
Dim ConsultaPorSucursal As Boolean = UsuarioActual.Empresa.Funcionalidad(382) = "1" Dim ConsultaPorSucursal As Boolean = UsuarioActual.Empresa.Funcionalidad(382) = "1"
@@ -1628,7 +1628,6 @@ Partial Class PopUpVerFactura
End If End If
End If End If
If DtCortesVentas.Rows.Count > 0 Then If DtCortesVentas.Rows.Count > 0 Then
Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0") Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0")
@@ -1639,7 +1638,7 @@ Partial Class PopUpVerFactura
End If End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(189, 197) Then
If ConsultaPorSucursal Then If ConsultaPorSucursal Then
If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto) Then If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto) Then
DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("FechaInicial IS NOT NULL") DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("FechaInicial IS NOT NULL")
@@ -1693,7 +1692,7 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("AgrupoPor", $"{FechaCorte}{Usuario}")) params.Add(New ReportParameter("AgrupoPor", $"{FechaCorte}{Usuario}"))
params.Add(New ReportParameter("LogoPath", RutaImagenLogo)) params.Add(New ReportParameter("LogoPath", RutaImagenLogo))
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa.Contiene(189, 197) Then
If DtReporteCorte IsNot Nothing Then If DtReporteCorte IsNot Nothing Then
Dim dtDatos = DtReporteCorte.Clone() Dim dtDatos = DtReporteCorte.Clone()
dtDatos.ImportRow(DtReporteCorte.Rows(0)) dtDatos.ImportRow(DtReporteCorte.Rows(0))
@@ -1839,21 +1838,29 @@ Partial Class PopUpVerFactura
lrds.Add(rds5) lrds.Add(rds5)
If UsuarioActual.CveEmpresa.Contiene(197, 193) Then If UsuarioActual.CveEmpresa.Contiene(197, 193, 189) Then
Dim CveCuenta As Integer = -1 Dim CveCuenta As Integer = -1
If UsuarioActual.CveEmpresa = 193 Then 'obtener relación contable
CveCuenta = 186367 Dim objC As New ClsContabilidad
Else If objC.GetCuentasAsignaciones(UsuarioActual.CveEmpresa, 30) Then
CveCuenta = 0 'obtengo la cvecuentabancaria
Dim tCveBancoCuenta As Integer = GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa, Estatus:=-1, CveTipoCuenta:=1).FiltroPrimeroValor("CveCuenta", $"CveSubProyecto = {CveSubProyecto}").ToEntero
If CveSubProyecto = 12756 Then 'nav CveCuenta = objC.DtResultados.FiltroPrimeroValor("CveCuenta", $"CveBancoCuenta = {tCveBancoCuenta}").ToEntero
CveCuenta = 188796
End If
If CveSubProyecto = 12755 Then 'hillo
CveCuenta = 188795
End If
End If End If
objC.Dispose()
'If UsuarioActual.CveEmpresa = 193 Then
' CveCuenta = 186367
'Else
' CveCuenta = 0
' If CveSubProyecto = 12756 Then 'nav
' CveCuenta = 188796
' End If
' If CveSubProyecto = 12755 Then 'hillo
' CveCuenta = 188795
' End If
'End If
If CveCuenta >= 0 Then If CveCuenta >= 0 Then
Using ObjConta As New ClsContabilidad Using ObjConta As New ClsContabilidad
@@ -1868,7 +1875,6 @@ Partial Class PopUpVerFactura
Dim rdsDepositos As New ReportDataSource With {.Name = "DsDepositos", .Value = DtDepositos} Dim rdsDepositos As New ReportDataSource With {.Name = "DsDepositos", .Value = DtDepositos}
lrds.Add(rdsDepositos) lrds.Add(rdsDepositos)
End If End If
End If End If
'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString())) 'params.Add(New ReportParameter("VentasCorte", RowCorte("VentasCorte").ToString()))
@@ -1885,7 +1891,6 @@ Partial Class PopUpVerFactura
Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas} Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = DtCortesVentas}
lrds.Add(rds2) lrds.Add(rds2)
ImprimirPDF(DirFormato, lrds, params, "ReporteCortes", Formato) ImprimirPDF(DirFormato, lrds, params, "ReporteCortes", Formato)
End If End If
@@ -3092,11 +3097,9 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("Folio", Folio)) params.Add(New ReportParameter("Folio", Folio))
params.Add(New ReportParameter("FacturaProveedor", If(CveCompra > 0, dr("SerieFolio").ToString, ""))) params.Add(New ReportParameter("FacturaProveedor", If(CveCompra > 0, dr("SerieFolio").ToString, "")))
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then
params.Add(New ReportParameter("Fecha", String.Format("{0} {1}", FechaHora.ToDate.ToString("yyyy-MM-dd"), FechaHora.ToDateTime.ToString("HH:mm:ss")))) params.Add(New ReportParameter("Fecha", String.Format("{0} {1}", FechaHora.ToDate.ToString("dd/MM/yyyy"), FechaHora.ToDateTime.ToString("HH:mm:ss"))))
Else
params.Add(New ReportParameter("Fecha", Fecha))
End If
If UsuarioActual.CveEmpresa = 72 Then If UsuarioActual.CveEmpresa = 72 Then
params.Add(New ReportParameter("CveTipoAlmacen", CveTipoAlmacen.ToString())) params.Add(New ReportParameter("CveTipoAlmacen", CveTipoAlmacen.ToString()))
@@ -3120,13 +3123,24 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("TelefonoProveedor", If(CveCompra > 0, dr("Telefono").ToString, ""))) params.Add(New ReportParameter("TelefonoProveedor", If(CveCompra > 0, dr("Telefono").ToString, "")))
params.Add(New ReportParameter("ContactoProveedor", If(CveCompra > 0, dr("ContactoNombre").ToString, ""))) params.Add(New ReportParameter("ContactoProveedor", If(CveCompra > 0, dr("ContactoNombre").ToString, "")))
params.Add(New ReportParameter("ImporteLetra", String.Format("({0})", DtMovimientos.SUM("Total").ToString.ToDecimal.Texto2Letras(CveMoneda).ToUpper))) params.Add(New ReportParameter("ImporteLetra", String.Format("({0})", DtMovimientos.SUM("Total").ToString.ToDecimal.Texto2Letras(CveMoneda).ToUpper)))
params.Add(New ReportParameter("SubTotal", If(CveCompra > 0, (dr("SubTotal").ToString.ToDouble).FormatoNumero, ""))) params.Add(New ReportParameter("SubTotal", If(CveCompra > 0, (dr("SubTotal").ToString.ToDouble - dr("Descuentos").ToString.ToDouble).FormatoNumero(2), "")))
params.Add(New ReportParameter("Descuentos", If(CveCompra > 0, (dr("Descuentos").ToString.ToDouble).FormatoNumero(2), ""))) params.Add(New ReportParameter("Descuentos", If(CveCompra > 0, (dr("Descuentos").ToString.ToDouble).FormatoNumero(2), "")))
params.Add(New ReportParameter("IVA", If(CveCompra > 0, (dr("IVA").ToString.ToDouble).FormatoNumero, ""))) params.Add(New ReportParameter("IVA", If(CveCompra > 0, (dr("IVA").ToString.ToDouble).FormatoNumero, "")))
params.Add(New ReportParameter("Total", If(CveCompra > 0, (dr("Total").ToString.ToDouble).FormatoNumero, ""))) params.Add(New ReportParameter("Total", If(CveCompra > 0, (dr("Total").ToString.ToDouble).FormatoNumero, "")))
params.Add(New ReportParameter("FechaFactura", If(CveCompra > 0, dr("Fecha").ToString.ToDate().ToString("dd/MM/yyyy"), "")))
params.Add(New ReportParameter("SerieFolio", If(CveCompra > 0, dr("SerieFolio").ToString, "")))
params.Add(New ReportParameter("Moneda", If(CveCompra > 0, dr("Moneda").ToString, "")))
params.Add(New ReportParameter("Condicion", If(CveCompra > 0, (((dr("FechaVencimiento").ToString.ToDate - dr("Fecha").ToString.ToDate)).TotalDays).ToString, "")))
params.Add(New ReportParameter("Saldo", If(CveCompra > 0, dr("Saldo").ToString.ToDouble.FormatoNumero(2), "")))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
params.Add(New ReportParameter("NombreEntrego", String.Format("REVISÓ ALMACÉN{0}{1}", vbCrLf, Recibio))) params.Add(New ReportParameter("NombreEntrego", String.Format("REVISÓ ALMACÉN{0}{1}", vbCrLf, Recibio)))
params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ ALMACÉN{0}{1}", vbCrLf, Recibio))) params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ ALMACÉN{0}{1}", vbCrLf, Recibio)))
params.Add(New ReportParameter("FechaVencimiento", If(CveCompra > 0, dr("FechaVencimiento").ToString.ToDate().ToString("dd/MM/yyyy"), "")))
params.Add(New ReportParameter("NombreCapturo", If(CveCompra > 0, dr("NombreCapturo").ToString, "")))
Else Else
params.Add(New ReportParameter("NombreRecibio", String.Format(Recibio))) params.Add(New ReportParameter("NombreRecibio", String.Format(Recibio)))
params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo)))

View File

@@ -302,138 +302,154 @@
<ContentTemplate> <ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None" AutoGenerateColumns="False" EmptyDataText="No se encontraron Ventas con los filtros especificados" ToolTip="Listado de Compras"> <asp:GridView ID="GvDatos" runat="server" data-sort="true" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None" AutoGenerateColumns="False" EmptyDataText="No se encontraron Ventas con los filtros especificados" ToolTip="Listado de Compras">
<Columns> <Columns>
<%--0--%>
<asp:TemplateField ItemStyle-Width="60"> <asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate> <HeaderTemplate>
Fecha Fecha
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}") %>'></asp:Literal> <asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--1--%>
<asp:TemplateField ItemStyle-Width="100"> <asp:TemplateField ItemStyle-Width="100">
<HeaderTemplate> <HeaderTemplate>
Serie/Folio Serie/Folio
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:HyperLink ID="HplSerieFolio" runat="server" Text='<%# Eval("SerieFolio") %>' CssClass="Texto" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}") %>'></asp:HyperLink> <asp:HyperLink ID="HplSerieFolio" runat="server" Text='<%# Eval("SerieFolio") %>' CssClass="Texto" NavigateUrl='<%# Eval("CveCompra", "/Compras/Compras.aspx?CveCompra={0}") %>'></asp:HyperLink>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--2--%>
<asp:TemplateField ItemStyle-Width="100" Visible="False"> <asp:TemplateField ItemStyle-Width="100" Visible="False">
<HeaderTemplate> <HeaderTemplate>
Folio Fiscal Folio Fiscal
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlFolioFiscal" runat="server" Text='<%# Eval("FolioFiscal") %>'></asp:Literal> <asp:Literal ID="LtlFolioFiscal" runat="server" Text='<%# Eval("FolioFiscal") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--3--%>
<asp:TemplateField ItemStyle-Width="20"> <asp:TemplateField ItemStyle-Width="20">
<HeaderTemplate> <HeaderTemplate>
Cant. Cant.
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlCant" runat="server" Text='<%# Eval("Cantidad", "{0:N0}") %>'></asp:Literal> <asp:Literal ID="LtlCant" runat="server" Text='<%# Eval("Cantidad", "{0:N0}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--4--%>
<asp:TemplateField ItemStyle-Width="80"> <asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate> <HeaderTemplate>
SubTotal SubTotal
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlSubTotal" runat="server" Text='<%# Eval("SubTotal", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LtlSubTotal" runat="server" Text='<%# Eval("SubTotal", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--5--%>
<asp:TemplateField ItemStyle-Width="80"> <asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate> <HeaderTemplate>
IVA IVA
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlIVA" runat="server" Text='<%# Eval("IVA", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LtlIVA" runat="server" Text='<%# Eval("IVA", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--6--%>
<asp:TemplateField ItemStyle-Width="80"> <asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate> <HeaderTemplate>
IEPS IEPS
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlIEPS" runat="server" Text='<%# Eval("IEPS", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LtlIEPS" runat="server" Text='<%# Eval("IEPS", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--7--%>
<asp:TemplateField ItemStyle-Width="80"> <asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate> <HeaderTemplate>
Descuentos Descuentos
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlDescuentos" runat="server" Text='<%# Eval("Descuento", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LtlDescuentos" runat="server" Text='<%# Eval("Descuento", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--8--%>
<asp:BoundField DataField="RetIVA" HeaderText="Ret IVA" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" /> <asp:BoundField DataField="RetIVA" HeaderText="Ret IVA" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<%--9--%>
<asp:BoundField DataField="RetISR" HeaderText="Ret ISR" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" /> <asp:BoundField DataField="RetISR" HeaderText="Ret ISR" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<%--10--%>
<asp:TemplateField ItemStyle-Width="80"> <asp:TemplateField ItemStyle-Width="80">
<HeaderTemplate> <HeaderTemplate>
Total Total
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlTotal" runat="server" Text='<%# Eval("Total", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LtlTotal" runat="server" Text='<%# Eval("Total", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--11--%>
<asp:TemplateField ItemStyle-Width="60"> <asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate> <HeaderTemplate>
Moneda Moneda
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlUM" runat="server" Text='<%# Eval("Abreviatura")%>'></asp:Literal> <asp:Literal ID="LtlUM" runat="server" Text='<%# Eval("Abreviatura")%>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--12--%>
<asp:TemplateField ItemStyle-Width="200"> <asp:TemplateField ItemStyle-Width="200">
<HeaderTemplate> <HeaderTemplate>
Proveedor Proveedor
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlProveedor" runat="server" Text='<%# Eval("RazonSocial") %>'></asp:Literal> <asp:Literal ID="LtlProveedor" runat="server" Text='<%# Eval("RazonSocial") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--13--%>
<asp:TemplateField ItemStyle-Width="30"> <asp:TemplateField ItemStyle-Width="30">
<HeaderTemplate> <HeaderTemplate>
Folio Inv Folio Inv
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlFolioInv" runat="server" Text='<%# Eval("FolioInv") %>'></asp:Literal> <asp:Literal ID="LtlFolioInv" runat="server" Text='<%# Eval("FolioInv") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--14--%>
<asp:TemplateField ItemStyle-Width="60"> <asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate> <HeaderTemplate>
Fecha Movimiento Fecha Movimiento
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlFechaInv" runat="server" Text='<%# Eval("FechaInv", "{0:d}") %>'></asp:Literal> <asp:Literal ID="LtlFechaInv" runat="server" Text='<%# Eval("FechaInv", "{0:d}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%--15--%>
<asp:TemplateField ItemStyle-Width="60"> <asp:TemplateField ItemStyle-Width="60">
<HeaderTemplate> <HeaderTemplate>
Observaciones Observaciones
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LtlObs" runat="server" Text='<%# Eval("Observaciones") %>'></asp:Literal> <asp:Literal ID="LtlObs" runat="server" Text='<%# Eval("Observaciones") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:BoundField DataField="Descripcion" ItemStyle-Width="100px" HeaderText="Descripción" /> <%--16--%>
<asp:TemplateField Visible="false">
<HeaderTemplate>
Descripción
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--17--%>
<asp:TemplateField Visible="false">
<HeaderTemplate>
Almacén
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlAlamcen" runat="server" Text='<%# Eval("Almacen") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns> </Columns>
</asp:GridView> </asp:GridView>
</ContentTemplate> </ContentTemplate>
@@ -521,7 +537,9 @@
<asp:CheckBox ID="ChkFolioInv" runat="server" Text="Folio Inv" /></td> <asp:CheckBox ID="ChkFolioInv" runat="server" Text="Folio Inv" /></td>
<td> <td>
<asp:CheckBox ID="ChkFecha" runat="server" Text="Fecha Movimiento" /></td> <asp:CheckBox ID="ChkFecha" runat="server" Text="Fecha Movimiento" /></td>
<td></td> <td>
<asp:CheckBox ID="ChkAlmacen" runat="server" Text="Almacén" /></td>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>

View File

@@ -380,7 +380,19 @@ Partial Class Compras_RepComprasDetalle
params.Add(New ReportParameter("FechaImpresion", NowADS().ToString)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToString))
params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b> {Grupo}{Proveedor}{Capturo}{FechaIn}{FechaFn}{FechaCIn}{FechaCFn}{Proyecto}{SubProyecto}{TipoGasto}{TipoProveedor}{TipoDocto}")) params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b> {Grupo}{Proveedor}{Capturo}{FechaIn}{FechaFn}{FechaCIn}{FechaCFn}{Proyecto}{SubProyecto}{TipoGasto}{TipoProveedor}{TipoDocto}"))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF("Empresas/Grales/Formatos/RepComprasDetalle.rdlc", DtDatos, params, "ReporteComprasDetalles", Opcion)
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\RepComprasDetalle.rdlc", UsuarioActual.Empresa.Ruta))
If Archivo.Exists Then
ImprimirPDF(Archivo.FullName, DtDatos, params, "ReporteComprasDetalles", Opcion)
Else
ImprimirPDF("Empresas/Grales/Formatos/RepComprasDetalle.rdlc", DtDatos, params, "ReporteComprasDetalles", Opcion)
End If
Else Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If End If
@@ -463,6 +475,7 @@ Partial Class Compras_RepComprasDetalle
GvDatos.Columns(14).Visible = ChkFecha.Checked GvDatos.Columns(14).Visible = ChkFecha.Checked
GvDatos.Columns(15).Visible = ChkObs.Checked GvDatos.Columns(15).Visible = ChkObs.Checked
GvDatos.Columns(16).Visible = ChkDescripcion.Checked GvDatos.Columns(16).Visible = ChkDescripcion.Checked
GvDatos.Columns(17).Visible = ChkAlmacen.Checked
Personalizo = 1 Personalizo = 1
If Personalizo = 1 Then If Personalizo = 1 Then

View File

@@ -23,9 +23,9 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>PS</rd:DefaultName> <rd:DefaultName>PS</rd:DefaultName>
<Top>0.14111cm</Top> <Top>0.14111cm</Top>
<Left>2.48778cm</Left> <Left>2.49661cm</Left>
<Height>1.1761cm</Height> <Height>1.11613cm</Height>
<Width>6.93443cm</Width> <Width>6.06038cm</Width>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -186,10 +186,10 @@
<Source>Embedded</Source> <Source>Embedded</Source>
<Value>Logo</Value> <Value>Logo</Value>
<Sizing>FitProportional</Sizing> <Sizing>FitProportional</Sizing>
<Top>1.5468cm</Top> <Top>1.40569cm</Top>
<Left>8.2016cm</Left> <Left>8.55699cm</Left>
<Height>0.74287cm</Height> <Height>0.74287cm</Height>
<Width>1.52823cm</Width> <Width>1.19402cm</Width>
<ZIndex>6</ZIndex> <ZIndex>6</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -197,6 +197,21 @@
</Border> </Border>
</Style> </Style>
</Image> </Image>
<Image Name="Image1">
<Source>Embedded</Source>
<Value>ImagendeWhatsApp20241231alas090549_f3f7f850</Value>
<Sizing>FitProportional</Sizing>
<Top>0.25428cm</Top>
<Left>8.55699cm</Left>
<Height>1.11613cm</Height>
<Width>1.19402cm</Width>
<ZIndex>7</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
</ReportItems> </ReportItems>
<Height>0.92351in</Height> <Height>0.92351in</Height>
<Style> <Style>
@@ -250,6 +265,183 @@ n5+QzvCe4J7tvEkKhS1mXYZm4hFi0PuGNBlQQyDX7jan0Pa3ES7zUNmCV6S1tdk/JVwAeXGMCFjxd+f+
VO81MNBExHyPQQai25ygCYWWpiH5tK8Uip0PmPTehMs+yDCpjzI9EbOZI6D/TPIq10bIFHWDJYZ4Wrsh/GuLNmnvDd5S+IM8Nt1rd008NHbylX80A+dAOswllTDpMwlXWB/Ji/0uSRcz1x6eVQoX0MohJMosHtNeFS37csGIhi9GRVtMD/SJQBlvTNrXhtQymL2QSBMPDRwjxyOvPXfJ45v++TFg9jUSronwGPGVY6ywODHGfpvREBMcbLv00j57DSjXlOH3H9NeSd4ZIRZ0PK1DV7FXw0MZuDHz21EGqJYPg9Rls4h4xKxUblkQovl8zL5GwgVBmZrDc4Z0X3BQpttXFi5PZP19+N9LV2z+1veRAUDHi3V4DRuWmE7pNvcUxYA2nkEgSKEXJhTekPG8XH6bzxMIoYlwWS8r+PbS2PkFk6eRcAG5VpRtz2OuAdu+aIGYcAGvnqV9ONekXDGUr7QNISpNhMsNxOgA2UvA40S7pXqeXXioTc7fhq7OARHs6xrILiTlSWef9HtwXosQMlJShGuvzmsRQkZKnXAxRCSEjI4q4bLzEN7rb0IIGQVVwgVPa6++RSSEjJiYcDFEJISMlphwhaubCSFkNGhrubQ0QggZDaFIcUKeEDJ6QuHihDwhZPRgYal8uNX/nxBCRo1M0HOFPCFkboBwcfkDIWSuOHbgD9+979ALr3H5AyFkLlhdWruyurR+fXXf+o9X920wTCSEjJ+VpbV7rXAtrb+3vLjBt4mEkPGDpRDHDnztabdJCCHjp+pD1oQQMjrCxaeEEDJ66G0RQuYKeluEkLmD3hYhZK7gKnlCyFzg1mtdxZqt+2954r1jd754k9tFCCHjAyvijWBtu4Wmztamfn2YEEJGw8rS+omyaBXmdhNCyPjwPtZD4SKEzA9GqOz8ltjK4voFt4sQQsbJPTds3GhDxsX186uLa/yWU0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQ VO81MNBExHyPQQai25ygCYWWpiH5tK8Uip0PmPTehMs+yDCpjzI9EbOZI6D/TPIq10bIFHWDJYZ4Wrsh/GuLNmnvDd5S+IM8Nt1rd008NHbylX80A+dAOswllTDpMwlXWB/Ji/0uSRcz1x6eVQoX0MohJMosHtNeFS37csGIhi9GRVtMD/SJQBlvTNrXhtQymL2QSBMPDRwjxyOvPXfJ45v++TFg9jUSronwGPGVY6ywODHGfpvREBMcbLv00j57DSjXlOH3H9NeSd4ZIRZ0PK1DV7FXw0MZuDHz21EGqJYPg9Rls4h4xKxUblkQovl8zL5GwgVBmZrDc4Z0X3BQpttXFi5PZP19+N9LV2z+1veRAUDHi3V4DRuWmE7pNvcUxYA2nkEgSKEXJhTekPG8XH6bzxMIoYlwWS8r+PbS2PkFk6eRcAG5VpRtz2OuAdu+aIGYcAGvnqV9ONekXDGUr7QNISpNhMsNxOgA2UvA40S7pXqeXXioTc7fhq7OARHs6xrILiTlSWef9HtwXosQMlJShGuvzmsRQkZKnXAxRCSEjI4q4bLzEN7rb0IIGQVVwgVPa6++RSSEjJiYcDFEJISMlphwhaubCSFkNGhrubQ0QggZDaFIcUKeEDJ6QuHihDwhZPRgYal8uNX/nxBCRo1M0HOFPCFkboBwcfkDIWSuOHbgD9+979ALr3H5AyFkLlhdWruyurR+fXXf+o9X920wTCSEjJ+VpbV7rXAtrb+3vLjBt4mEkPGDpRDHDnztabdJCCHjp+pD1oQQMjrCxaeEEDJ66G0RQuYKeluEkLmD3hYhZK7gKnlCyFzg1mtdxZqt+2954r1jd754k9tFCCHjAyvijWBtu4Wmztamfn2YEEJGw8rS+omyaBXmdhNCyPjwPtZD4SKEzA9GqOz8ltjK4voFt4sQQsbJPTds3GhDxsX186uLa/yWU0IIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQ
QgghhBBCyJ5lYeH/Aev8eE4+mU6OAAAAAElFTkSuQmCC</ImageData> QgghhBBCyJ5lYeH/Aev8eE4+mU6OAAAAAElFTkSuQmCC</ImageData>
</EmbeddedImage> </EmbeddedImage>
<EmbeddedImage Name="ImagendeWhatsApp20241231alas090549_f3f7f850">
<MIMEType>image/jpeg</MIMEType>
<ImageData>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
hyxTFq1e7ImreSMcjZZKv1JsEXjHGB0ondgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJMVbyyRyIx0a0a3RJnvcLY1e1V5HN0c/qLS1bVhyETzCqfhLKn0JAY5CtarLEo4G7I50vEDs45NEvy9Xi1WZ4KyE1WbInKJloYjvfCLLtxyWxr9ixRV0txnK6+ojp/ZmAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABw9wqqVikbpCJIlYzECROiRFgAABpNzj4EbooFhi50BMVFWmARy9PMRIx/gdumfNgWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3SIXmsZFa3zw4u0SAAAAhZqKRFMuk5OuQ7zHISABwck0RDdMgPPRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAgADAAAAIfPPPPPPPPPPPPPPPPPPPPPPPPPKNPPOMOPvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPMb59PO0nqvPPPPOctfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOM/PEV7NvOQNivPPPPOYaNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPON/vLI9PCHflPOGomvPPPP8PLHfO/8AXzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzwQQjzzL/z/Gp7z+7x3zzzzsmBnz0t0zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyFbmny7nzzzzzj7XXHD/AE888w/8jYn889c88888888888888888888888888880888v6sw884755398tf2aJXd3U8888NH+84oek888888888888888888888888888Six88tO838gM
OIMKLwwstBo8CN8Ll88O18yNT+888888888888888888888888888BU8s88znH3ev/e84QjId0sy8iE82n8E088GJ9v88d88888888888888888888/c8897NM87Vtc8+9/3298/jKbS88Z00B48Jl898+d888db8888888888888888889xR88tG8hWurxoELOHGIgU88PfMR8snWoKWtHx8A9c8849Q288888888888888888bet5A889g68ZrXG8PNMO5Z21/tRwxpPy4u55obOH888kpc888888888888888888888SFM818NOWvm98+3z+59sfg5ytD536w8SVIqje8wcc8d888p38888888888888qe884k8tG79Ih8SmoLKHDMxV09/eVtCVaLanjgv8AOmS95fPPPKaHPPPPPPPPPPPPPLz39POavMQPTyt7ilJrfHTv/fPPPPPD3nIy/b/OwY61/POEPFCvfPPPPPPPPPPPPPPLS+vC0tqp07SIPMrHfPPPPPPPPPPPPPLLHfM47gR/faIAkPDPPOM3fPPPPPPPPEGNPPPOPBn/ABc308hyl13zzzzzzzzzzzzzzzzygHZR3mek7r/zXTyoVWH3zzzzzzzmRX/7zM7zwrfsb2xOPzzzzzzzzzzzzzzzzzzzzz1zj9YPB/z7W8TyC6O/zzzzzzzzTCkrPxDru0njztTx93zzzzzzzzzzzzzzzzzzzzzzzsoj7zMSOv8Ac488t888888888tL6f8APONYNew9uymvPPPPPPPPPPPPPPPPPPPPPPPPPLPOtt4ZnfcM/fPOZm/PPPPPPPLLvHWAx8LRqfBPfPPPPPPPPPPPPPPPPPPPNdffPPPOnfbXed6RpmvJiorvPPPPPPPPPMjBH1UNOAuPPPPPPPPPPPPPPPPPEvPPPBTFfPPPPPfPMyhz0qf9VLPPPPPPLOnKQfPPPfIQ9LK7fPPPPPPPPPPPPPPPEnk/PPCgtfPP
PPPLNi9D8lfOU/PPd8fPPPDQnPPAc/AtzdNffPPPPPPPPNHPPPPDVAw20r2LbfPPPPPPPAsTfTKteifK6qWHPPPLGf8AyTQM13z4NHzzzzzzzzzxfzzzzz488888+jzzzzzzzzzzyuNXsDXsP0B3yZbzzzzz/wA88886xpLS8888888888e8884+fu00888o88888888888sjZtK2sCX7fcL88966x86vDHYLHWuc8888888888wn8xfyyy/u088o888888888888AS8D1oCW8sc888I/wDI1eQsU/XGey/PPPPPPPPPOv3PHt3PPHf+vPKPPPPPPPPPPPOAnOY/+CvvPfPPPJlH1vfPPPPOJQ4fPPPPPPPPL1Y/LfnfPPPG/wDzyjzzzzzzzzzzzsBT6Pz6TXzG9f8A9+cHt8poS94+2/8APPPPPPPPPPgg/ffvPPPPPK/LBvPPPPPPPPPPLTXPUnfOnfPC+JcvPPPPEKv+eBTudPPPPPPPPPPLi9ePkfPPPP6/P7dvPPPPPPPPPPDOdJfLEfNe31fPPPPNfHffBUpOTVvPPPPPPPPPPLFvHr0fOPfxfPw7fvPPPPPPPPPPK09qg1vfbPPPPKjiUPM1/wAMTw/JbzzzzzzzzzzxfzyxL+//AL/L0/DH28888888888qiT8kR92+88888eoTV8L8QRdqPf8APPPPPPPPPPPF/PPLPfDTbc1fy9PPPPPPPPPPPLZveC1vIn/jv5vAzl+PNLQ9OUNfNPPPPPPPPPPPP/PPPPPPPPPPO4fPPPPPPPPPPPI3epVnIhnbW3Pv/PPPPPPKFOr1r/fPPPPPPPPPPGwggggggggggjR/PPPPPPPPPPPHP/pX+kXd7fS8DPPPPPPCb/FJ/OvfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIaaZ+AitF/LHPPPLV7PfMF/AWvCfvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPCzHfPPP
PPM/PPPKbfDF/CteY1+A1vPPPPPPPPOOfPPPPO8dPPfPPPPPMvPPPPPPPKXu/q5AikvLEf8Azzhn/wD88CcoC3oC2888888884Jvi0888qxd86d88888f88888888rs/nyNvPe88lf288Ou988p88KUpL/8APPPPPPPO/fPoWSNAlN6FfRjurInPPPPPPPLa8PHfPPPPLp1dzPPPPPPPJgvCNvD4+NPPPPPPPV/OV+ElwvhFupZ71f3H/PPPPPPLC0+fC8zV/fPPPPPPPPPPPLe/I6fDQo2dPPPPPKzcSy/tEwtl9uz/APt371HzzzzzzrSjfAvsqy/zzzzzzzzzzzzzwL+kPyg//Vzzzzzzxxx++1/6z527x75829/3zzzzz3N7wgB7zzzTzzzzzzzzzzzzzwoyY4rv/wA44W888888888888888888888888888888F69IjZVzIc88888888888888tivBf99kgvL8888888888888888888888888888geq72tFDxHP8APPPPPPPPPPPPPPPLTfeZ+Suv/OPPPPPPPPPPPPPPPPPPPPPPPPPPPbsvNaNTgHPPPPPPPPPPPPPPPPPPPPfyhwb/AD4U87zzzzzzzzzzzzzzzzzzzzzzzh/y056ubTyrtzzzzzzzzzzzzzzzzzzykMB7zcSO/wDc40888888888888888888888vH/8ATAfFgPHBfPPPPPPPPPPPPPPPPPPPPPMljpdnfeOXafPPPPPPPPPPPPPPPPPPzPORNTyt/g/LPPPPPPPPPPPPPPPPPPPPPPCe9VPfczQnr/JVuPPPPPPPPPPPPPPPKG9uo+/ZMPEu/PPPPPPPPPPPPPPPPPPPPPPLFnPJ8imDvNaSwwoqtOPtfPNtBefOPJ61vMzfb7NOXvPPPPPPPPPPPPPPPPPPPPPPPPK4i5bvM3K5fm4dxg/Ga8fXcYCxwglCI9+xmfG8/PPPPPPPPPPPPPPPPPPP
PPPPPPPLLffPki0g6/7Q1Oqk/Kpt9PLLXH3fIqvPO/PC/vPPPPPPPPPPPPPPPPPPPPPPPPPPPPOCFqblrS2bCM7Oq8/KF3rpd8duCM4o9ugl/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDjXPJvGb/GU/PDghtPPGbRjBhq1fSCPDvPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPHD/bBPI0fNfK44FffPHHnXfPaQr/AHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy37zt9Xy3yHn3/ALqazd732tRZCu885888888888888888888888888888888888807888vWd8h8qDK28cbINOGHDcM888lv1888888888888888888888888888888888/wBuOefPPLyvNc37HeffPLbffPNPdOX/AM/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx79x/vq7zzzzzzzzwy1zzzzzzy33e72W3/AB8888888888888888888888888888884fis328+89fP6088881988Gv78+up3U8s2/088888888888888888888888888888e7c8Z/Yt9++p3+888H2v59/tXq2v8e/88t/V8888888888888888888888888888seOpvV9/wBeP/PF/wDzzn/Tf6jvzfun7T27zzx3zzzzzzzzzzzzzzzzzzzzzzzzzzzzzyzzxYq37z6vzxa/zy39nevn/WjzVfqzrzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyz7Pvz7/Tj+bzyxLL6/j7Tm7S3L73zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZ//APc8888x++8WuPj888888888888888888888888888888888888888888888888sd9888889yy88sd9888888888888888888888888888888888888888888888
888888888888g88888888888888888888888888888888//aAAwDAQACAAMAAAAQ888888888888888888888888888+88+x4y88888888888888888888888888888888888888888888888888888888pCq38vs8o888888+888888888888888888888888888888888888888888888r488s9b18+I+U888882G888888888888888888888888888888888888888888398svf8oe0c8u5s58888p78c98+y288888888888888888888888888888888888uf488dV8vti988++d8888tqx184eO988888888888888888888888888888888888u04k86B888888y/wBvd+NPPDJ3PPpKXPP2PPPPPPPPPPPPPPPPPPPPPPPPPPPPN/8Azyz+WHzzjrv/AK88ttxWwY9oB8088Kyx84kCm88888888888888888888888888860/88ucc42JNPJdBo16s+mS8AR8c+88sc8twQq888888888888888888888888888Hp9l881HtwcPM8d4Uri3/vl81E8UK8v388Y8zc87f8APPPPPPPPPPPPPPPPPPPOGvPLFDrvL55vPOPu8cvvLIIenrPKIvNmfIqPOfOtPPLGvfPPPPPPPPPPPPPPPPPPwNvPLZPKlb9/ZmIjyxyVicvL0vv/AD91XpDSsrtc/RzzyZcbTzzzzzzzzzzzzzzzzw30rUPzz0drzyLXO+wz46jRBfyy09D8JrsHKqKUDp7zy3p/zzzzzzzzzzzzzzzzzzzzyanzs7x3BzuJXz3n/Hn3ykd3awR3Tkbyu5Aa93z2Dm//AM88y68888888888888ne88ac8soZ8vQ8bBCjPOONgZ0+gdWuItO1fTH4u83SjHO88889H+8888888888888fQf088V8AU9O
F29GTlf8Me9t888888vhpHCjf81IKW88/wAFPJ9PfPPPPPPPPPPPPPPLJr/C2de6ureCPPGt/PPPPPPPPPPPPPLHD/OKrVF/fNYQIPD/ADzqLLzzzzzzzzxFD/zzzu+g/wArg2J6V6dd88888888888888888rLpM89jgiKc84/42p9Y088888889n2K88jd8sk/9C1syd888888888888888888888t/wCNcjsH/PqhhfIPO/dvPPPPPPE7sHEPH2HLbzfDqtrvPPPPPPPPPPPPPPPPPPPPPPPDzT7vO2SsnHOPPDfPPPPPPPPPSrMvPO3PND3VuD9fPPPPPPPPPPPPPPPPPPPPPPPPPLvPZ3OVPfPJPPPPcEPPPPPPPPL7vo9KU/fSr/P/AHzzzzzzzzzzzzzzzzzzzzPP3zzzz1JXRz3IxTjrzoYIzzzzzzzzzzzjyWwSbepZbzzzzzzzzzzzzzzzz+vTzzzBJ7zzzzw//wAt/KDiri9PO888888tZn9l888986ub8dF888888888888888/RIm088yy3888888xlGI+y/wDAGfPOPs/PPL6UBvLQKHQ4q9t7/PPPPPPPPDXffffS0zzxEhm/XPPPPPPPOGGo/PTX6WvPgvR3vPPPPD/PAix7HKa+vPPPPPPPPPP/ADzzzy+4447+yrzzzzzzzzzzyrr7kFerNdbTyH7zzzzwzzzzzjfP2srzzzzzzzzzz7DzziU0xPzzzyrzzzzzzzzzzzyBS2r/ALjd5d/B88424386hC7KCMG5+8888888888AK87/AKvHOntPPKvPPPPPPPPPPPI+fIPbg1vLHPPPMnDBNeA4E/7eJEPPPPPPPPPPIzF+Du3PPL0sfPKvPPPPPPPPPPOCRbQtqy9PNfPPPBZTs/PPPPPO6I//ADzzzzzzzz+Mv+9/fzzzwH7zyrzzzzzzzzzzzwH3q72qRXyZSzXL1kwTx4SVf50j3zzzzzzzzzxsAr6v
tTzzzzu/yiXzzzzzzzzzzyxxznlyRxTzz8h83zzzzzEqXlqvbn3zzzzzzzzzwsH7j/rzzzym/wAoxT88888888888c5Mc8DW897He/8APPPNfLBPM3XfYV/PPPPPPPPPPBfvNbkfOPvtvKK0OvPPPPPPPPPPIs1uA/8Aj27/AM88SIeC8s3+LH84Vc88888888888/c8sNjvu2+n8orLH8888888888nla8EN+1+88888v7Ew8L8cx8kKX888888888888/8888/POttuWonM88888888888wc8hNu4Meu/koy8fju8dqjU5DN8888888888888X88888888888p/wDPPPPPPPPPPPGX+QnPIrHegj/QvPPPPHJUtrC/7/8AzzzzzzzzzzwrLLLLLLLLLLKMfzzzzzzzzzzzxzhLlzhIf+xYyczzzzzzwxXx2jzDDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzuSkXwa8xfyw9zzpQY3Xxg7yGHwLjzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyyL5/zzzzzzfzzzz0bxf/wmbsL68J3zzzzzzzzzz7zzzz3HLTzvfzzzzz7zzzzzzzzbZjHJv9bPzsfzzy0pex/wFy4PyoPTzzzzzzzztC7bzzygr5zy/wB88888e88888888DNADkY/Ma8/Ksw88tf988D28KcuCX888888887l8tnkhBDIjDKRj60aO38888888vitkf8APPPPKpWq9PPPPPPPHB/KS/CgvP8Azzzzzz7bzllmGsOpIeozuhgrx7zzzzzzz4T/AJ7u91jd8888888888884D8WV8ptg+088888rywAM4vuHnS85RewMB8b888888289dwCmuXd88888888888888+d8DYVmDuc888888tsd89dvdMce/esNue//wDPPPPOb0L523vPONPPPPPPPPPPPPPPOJ+DSwtPP43PPPPPPPPPPPPPPPPPPPPP
PPPPPPPPPIJ/XfWjqsfPPPPPPPPPPPPPPPULHR3fKYKLvPPPPPPPPPPPPPPPPPPPPPPPPPPPNPft/rYxqyz/ADzzzzzzzzzzzzzzwp3z3MiQ5zzH7zzzzzzzzzzzzzzzzzzzzzzzzz0jfzATwrZ7zzzzzzzzzzzzzzzzzzz3Usog/wA26n3888888888888888888888888z09087q88ORd888888888888888888qALu8/5KiNc71888888888888888888888rDZ8DV8b+3qF88888888888888888888v81/11U988Rh5888888888888888888jQ8oQ1KF+sLT8c888888888888888888888cAdtc9vVq/c8vs5088888888888888rt17nytAY8MB88888888888888888888888sN/wDMUxsfPMA6hgv0N+NfPPPe+8uNaJy5vB4NuFna3PPPPPPPPPPPPPPPPPPPPPPPPPPfAnrvMsQ27F/byWPPUPtT7pwgwyUPrl7atfOgvPPPPPPPPPPPPPPPPPPPPPPPPPPLHLPOI4zwvdaA3q8c/CqAcfPPvXXPKQXfLkd+nfPPPPPPPPPPPPPPPPPPPPPPPPPPPPOKsWCurLBvL7LA9MvCcljxud9aODBAvqa9PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDB39qPHePOHfLIDy/vH1AjzRzUZXzO/D3PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPKONaC/POPMvG6Ccc/LPnTnfOYn1vfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPL1/wCFatLzd30yIoUgbvPTyVivzzzHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzczzzy7Z+tTz06T7y77mI48fqz7zzy77Xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx6jz73Tzz7rwOJbobrzzy3z3zzDvz2frnzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzxmrS+P6rTzzzzzzy/4xzzzzzzyJWY7V+69vzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyjqDz5WjP/AP1mZ08888y184cC18KttWb88bb888888888888888888888888888888t+c8eGTtfeEu298887+u66ue6pIo88M88tna8888888888888888888888888888stdv21q+V/+88t688++0JYvr0hq6fU+/wBPPL/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPLHLGhKt/1L/PFtvPL/k2fu//AHv3XKuevzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyzrbJxmLTh6nzywDLrbzdeu9S8qKbzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxprprzzzzzd4Xw3d5Hzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzy67zzzzysIHzyw+9zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzyDzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QALxEAAgIBBAECBgMBAQADAQEAAQIAEQMQEiExBCAyEyIwQEFRFEJQYVIzQ3EjYP/aAAgBAgEBPwD7rEFA3NGNm9VG40I+Jl5OhxsBf+zjxlzKxpxDiVxawiuNMXvEI3cQrTVMvsPqAufCf9Qiv80cmZcKqtrrgHyx/cZ47c1My0dMPvEzMUqplXdTCZfYfViQIu4z+SbjoMi7v8oYmP4hUr3qnzpCKNaeMeCJmFNPH908g8jTD755H4mB+Npmb2n0oLYCZ2pa0XKyitcOMP3GwMORCCO/8TAg9xjeQb4j5gy1WvjN2szrTaI5Q2Jvx5BzPiIntjMWNnRWKmxHcv3AaNiNlZhR9KHa1zMu9bWJiZjMmPZoBc9i8RcrLHyq69c/4mE2sddrVALj4mQW
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</ImageData>
</EmbeddedImage>
</EmbeddedImages> </EmbeddedImages>
<rd:ReportUnitType>Cm</rd:ReportUnitType> <rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>272c4b43-6177-44f5-8699-9e315e3ec44e</rd:ReportID> <rd:ReportID>272c4b43-6177-44f5-8699-9e315e3ec44e</rd:ReportID>

File diff suppressed because it is too large Load Diff

View File

@@ -179,22 +179,22 @@
<TablixBody> <TablixBody>
<TablixColumns> <TablixColumns>
<TablixColumn> <TablixColumn>
<Width>1.24394cm</Width> <Width>1.0835cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>1.60503cm</Width> <Width>1.53251cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>1.69753cm</Width> <Width>1.40148cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>8.73517cm</Width> <Width>11.05821cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>2.34799cm</Width> <Width>2.33994cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>1.57581cm</Width> <Width>1.86685cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>1.96383cm</Width> <Width>1.96383cm</Width>
@@ -846,9 +846,9 @@
</TablixRowHierarchy> </TablixRowHierarchy>
<DataSetName>DsInventarios</DataSetName> <DataSetName>DsInventarios</DataSetName>
<Top>0.17639cm</Top> <Top>0.17639cm</Top>
<Left>0.12931cm</Left> <Left>0.09756cm</Left>
<Height>0.74125cm</Height> <Height>0.74125cm</Height>
<Width>19.1693cm</Width> <Width>21.24632cm</Width>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -857,9 +857,9 @@
</Tablix> </Tablix>
<Line Name="Line3"> <Line Name="Line3">
<Top>1.53162cm</Top> <Top>1.53162cm</Top>
<Left>0.17882cm</Left> <Left>0.14707cm</Left>
<Height>0cm</Height> <Height>0cm</Height>
<Width>19.11979cm</Width> <Width>21.07279cm</Width>
<ZIndex>1</ZIndex> <ZIndex>1</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -967,7 +967,7 @@
</TablixRowHierarchy> </TablixRowHierarchy>
<DataSetName>DsInventarios</DataSetName> <DataSetName>DsInventarios</DataSetName>
<Top>1.63745cm</Top> <Top>1.63745cm</Top>
<Left>15.70179cm</Left> <Left>17.67029cm</Left>
<Height>0.46771cm</Height> <Height>0.46771cm</Height>
<Width>3.572cm</Width> <Width>3.572cm</Width>
<ZIndex>2</ZIndex> <ZIndex>2</ZIndex>
@@ -996,9 +996,9 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName> <rd:DefaultName>Textbox8</rd:DefaultName>
<Top>4.50934cm</Top> <Top>4.50934cm</Top>
<Left>0.16513cm</Left> <Left>0.13338cm</Left>
<Height>0.97952cm</Height> <Height>0.97952cm</Height>
<Width>19.04079cm</Width> <Width>21.08648cm</Width>
<ZIndex>3</ZIndex> <ZIndex>3</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -1030,7 +1030,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName> <rd:DefaultName>Textbox5</rd:DefaultName>
<Top>3.79469cm</Top> <Top>3.79469cm</Top>
<Left>0.16513cm</Left> <Left>0.13338cm</Left>
<Height>0.60882cm</Height> <Height>0.60882cm</Height>
<Width>3.98167cm</Width> <Width>3.98167cm</Width>
<ZIndex>4</ZIndex> <ZIndex>4</ZIndex>
@@ -1048,16 +1048,16 @@
<TablixBody> <TablixBody>
<TablixColumns> <TablixColumns>
<TablixColumn> <TablixColumn>
<Width>1.96503cm</Width> <Width>1.87234cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>5.43562cm</Width> <Width>5.22297cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>7.7925cm</Width> <Width>9.86336cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>1.85371cm</Width> <Width>2.16521cm</Width>
</TablixColumn> </TablixColumn>
<TablixColumn> <TablixColumn>
<Width>2.07009cm</Width> <Width>2.07009cm</Width>
@@ -1413,11 +1413,15 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Fields!Cargo.Value</Value> <Value>=IIf(
Fields!Cargo.Value = 0,
"",
Format(Fields!Cargo.Value, "###,###,###.00")
)</Value>
<Style> <Style>
<FontFamily>MYRIAd Pro</FontFamily> <FontFamily>MYRIAd Pro</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6.5pt</FontSize>
<Format>###,###,###.##</Format> <Format>###,###,###.00</Format>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -1445,11 +1449,15 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Fields!Abono.Value</Value> <Value>=IIf(
Fields!Abono.Value = 0,
"",
Format(Fields!Abono.Value, "###,###,###.00")
)</Value>
<Style> <Style>
<FontFamily>MYRIAd Pro</FontFamily> <FontFamily>MYRIAd Pro</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6.5pt</FontSize>
<Format>###,###,###.##</Format> <Format>###,###,###.00</Format>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -1540,14 +1548,17 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value /> <Value>Total </Value>
<Style> <Style>
<FontFamily>MYRIAd Pro</FontFamily> <FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize> <FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
<Style /> <Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph> </Paragraph>
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox30</rd:DefaultName> <rd:DefaultName>Textbox30</rd:DefaultName>
@@ -1569,12 +1580,16 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Sum(Fields!Cargo.Value)</Value> <Value>=IIf(
Sum(Fields!Cargo.Value) = 0,
"",
Format(Sum(Fields!Cargo.Value), "###,###,###.00")
)</Value>
<Style> <Style>
<FontFamily>MYRIAd Pro</FontFamily> <FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize> <FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
<Format>###,###,###.##</Format> <Format>###,###,###.00</Format>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -1602,12 +1617,16 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Sum(Fields!Abono.Value)</Value> <Value>=IIf(
Sum(Fields!Abono.Value) = 0,
"",
Format(Sum(Fields!Abono.Value), "###,###,###.00")
)</Value>
<Style> <Style>
<FontFamily>MYRIAd Pro</FontFamily> <FontFamily>MYRIAd Pro</FontFamily>
<FontSize>7.5pt</FontSize> <FontSize>7.5pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
<Format>###,###,###.##</Format> <Format>###,###,###.00</Format>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -1654,9 +1673,9 @@
</TablixRowHierarchy> </TablixRowHierarchy>
<DataSetName>DsPrePoliza</DataSetName> <DataSetName>DsPrePoliza</DataSetName>
<Top>2.33687cm</Top> <Top>2.33687cm</Top>
<Left>0.18166cm</Left> <Left>0.14991cm</Left>
<Height>1.17898cm</Height> <Height>1.17898cm</Height>
<Width>19.11695cm</Width> <Width>21.19397cm</Width>
<ZIndex>5</ZIndex> <ZIndex>5</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -1668,10 +1687,10 @@
<Height>2.16097in</Height> <Height>2.16097in</Height>
<Style /> <Style />
</Body> </Body>
<Width>7.60322in</Width> <Width>8.4031in</Width>
<Page> <Page>
<PageHeader> <PageHeader>
<Height>4.51267cm</Height> <Height>5.22528cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage> <PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage> <PrintOnLastPage>true</PrintOnLastPage>
<ReportItems> <ReportItems>
@@ -1697,7 +1716,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox34</rd:DefaultName> <rd:DefaultName>Textbox34</rd:DefaultName>
<Top>0.07056cm</Top> <Top>0.07056cm</Top>
<Left>9.3683cm</Left> <Left>11.4003cm</Left>
<Height>0.6cm</Height> <Height>0.6cm</Height>
<Width>9.85131cm</Width> <Width>9.85131cm</Width>
<Style> <Style>
@@ -1781,6 +1800,114 @@
</TextRuns> </TextRuns>
<Style /> <Style />
</Paragraph> </Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha de Factura:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!FechaFactura.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Folio:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!SerieFolio.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Moneda:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!Moneda.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Orden de Compra:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!OCVinculada.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
@@ -1837,9 +1964,9 @@
</Paragraph> </Paragraph>
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName> <rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.5527cm</Top> <Top>1.9177cm</Top>
<Left>0.18166cm</Left> <Left>0.18166cm</Left>
<Height>1.87883cm</Height> <Height>3.30758cm</Height>
<Width>10.47411cm</Width> <Width>10.47411cm</Width>
<ZIndex>1</ZIndex> <ZIndex>1</ZIndex>
<Visibility> <Visibility>
@@ -1865,7 +1992,6 @@
<Value>Folio</Value> <Value>Folio</Value>
<Style> <Style>
<FontFamily>Myriad Pro Light</FontFamily> <FontFamily>Myriad Pro Light</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -1873,7 +1999,6 @@
<Value>: </Value> <Value>: </Value>
<Style> <Style>
<FontFamily>Myriad Pro</FontFamily> <FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -1881,7 +2006,6 @@
<Value>=Parameters!Folio.Value</Value> <Value>=Parameters!Folio.Value</Value>
<Style> <Style>
<FontFamily>Myriad Pro</FontFamily> <FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
<Color>Red</Color> <Color>Red</Color>
</Style> </Style>
@@ -1916,7 +2040,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>Fecha: </Value> <Value>Capturo:</Value>
<Style> <Style>
<FontFamily>Myriad Pro</FontFamily> <FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
@@ -1924,33 +2048,11 @@
</Style> </Style>
</TextRun> </TextRun>
<TextRun> <TextRun>
<Value>=Parameters!Fecha.Value</Value> <Value>=Parameters!NombreCapturo.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<Format>d</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Folio Factura del Proveedor: </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value>=Parameters!FacturaProveedor.Value</Value>
<Style> <Style>
<FontFamily>Myriad Pro</FontFamily> <FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
<FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -1961,8 +2063,8 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox50</rd:DefaultName> <rd:DefaultName>Textbox50</rd:DefaultName>
<Top>0.74112cm</Top> <Top>0.74112cm</Top>
<Left>4.57254cm</Left> <Left>6.60454cm</Left>
<Height>1.70222cm</Height> <Height>1.25419cm</Height>
<Width>14.64707cm</Width> <Width>14.64707cm</Width>
<ZIndex>2</ZIndex> <ZIndex>2</ZIndex>
<Style> <Style>
@@ -1979,10 +2081,10 @@
<Source>Embedded</Source> <Source>Embedded</Source>
<Value>Logo2</Value> <Value>Logo2</Value>
<Sizing>FitProportional</Sizing> <Sizing>FitProportional</Sizing>
<Top>0.04187cm</Top> <Top>0.07056cm</Top>
<Left>0.05091in</Left> <Left>0.25918in</Left>
<Height>0.91907in</Height> <Height>0.72671in</Height>
<Width>1.74231in</Width> <Width>1.56919in</Width>
<ZIndex>3</ZIndex> <ZIndex>3</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -1990,6 +2092,251 @@
</Border> </Border>
</Style> </Style>
</Image> </Image>
<Textbox Name="Textbox4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha de Entrada:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Vencimiento:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Condición:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Importe:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>IVA:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Total:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Saldo:</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.13642cm</Top>
<Left>14.8163cm</Left>
<Height>2.87013cm</Height>
<Width>3.38481cm</Width>
<ZIndex>4</ZIndex>
<Visibility>
<Hidden>=Parameters!CveTipoAlmacen.Value = "19"</Hidden>
</Visibility>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Fecha.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
<Format>d</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!FechaVencimiento.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Condicion.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!SubTotal.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!IVA.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Total.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Saldo.Value</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.13642cm</Top>
<Left>18.06883cm</Left>
<Height>2.87013cm</Height>
<Width>3.15103cm</Width>
<ZIndex>5</ZIndex>
<Visibility>
<Hidden>=Parameters!CveTipoAlmacen.Value = "19"</Hidden>
</Visibility>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems> </ReportItems>
<Style> <Style>
<Border> <Border>
@@ -1998,7 +2345,7 @@
</Style> </Style>
</PageHeader> </PageHeader>
<PageFooter> <PageFooter>
<Height>2.08167cm</Height> <Height>2.34625cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage> <PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage> <PrintOnLastPage>true</PrintOnLastPage>
<ReportItems> <ReportItems>
@@ -2006,7 +2353,7 @@
<Top>1.1404cm</Top> <Top>1.1404cm</Top>
<Left>0.05012cm</Left> <Left>0.05012cm</Left>
<Height>0cm</Height> <Height>0cm</Height>
<Width>19.16949cm</Width> <Width>21.20149cm</Width>
<Style> <Style>
<Border> <Border>
<Color>#0e2455</Color> <Color>#0e2455</Color>
@@ -2041,10 +2388,6 @@
<Border> <Border>
<Style>None</Style> <Style>None</Style>
</Border> </Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Textbox Name="Textbox18"> <Textbox Name="Textbox18">
@@ -2076,10 +2419,6 @@
<Border> <Border>
<Style>None</Style> <Style>None</Style>
</Border> </Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Textbox Name="Textbox20"> <Textbox Name="Textbox20">
@@ -2101,7 +2440,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox12</rd:DefaultName> <rd:DefaultName>Textbox12</rd:DefaultName>
<Top>1.22061cm</Top> <Top>1.22061cm</Top>
<Left>7.7587cm</Left> <Left>8.7112cm</Left>
<Height>0.44125cm</Height> <Height>0.44125cm</Height>
<Width>2.68521cm</Width> <Width>2.68521cm</Width>
<ZIndex>3</ZIndex> <ZIndex>3</ZIndex>
@@ -2137,7 +2476,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox18</rd:DefaultName> <rd:DefaultName>Textbox18</rd:DefaultName>
<Top>1.22061cm</Top> <Top>1.22061cm</Top>
<Left>10.44391cm</Left> <Left>11.39641cm</Left>
<Height>0.44125cm</Height> <Height>0.44125cm</Height>
<Width>3.44953cm</Width> <Width>3.44953cm</Width>
<ZIndex>4</ZIndex> <ZIndex>4</ZIndex>
@@ -2172,7 +2511,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName> <rd:DefaultName>Textbox3</rd:DefaultName>
<Top>1.22061cm</Top> <Top>1.22061cm</Top>
<Left>15.59511cm</Left> <Left>17.50011cm</Left>
<Height>0.38981cm</Height> <Height>0.38981cm</Height>
<Width>3.61081cm</Width> <Width>3.61081cm</Width>
<ZIndex>5</ZIndex> <ZIndex>5</ZIndex>
@@ -2205,7 +2544,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox29</rd:DefaultName> <rd:DefaultName>Textbox29</rd:DefaultName>
<Top>1.66186cm</Top> <Top>1.66186cm</Top>
<Left>0.12912cm</Left> <Left>0.14991cm</Left>
<Height>0.41981cm</Height> <Height>0.41981cm</Height>
<Width>5.78083cm</Width> <Width>5.78083cm</Width>
<ZIndex>6</ZIndex> <ZIndex>6</ZIndex>
@@ -2213,17 +2552,13 @@
<Border> <Border>
<Style>None</Style> <Style>None</Style>
</Border> </Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Rectangle Name="Rectangle1"> <Rectangle Name="Rectangle1">
<ReportItems> <ReportItems>
<Line Name="Line6"> <Line Name="Line6">
<Top>0.18344cm</Top> <Top>0.18344cm</Top>
<Left>1.19476cm</Left> <Left>1.53738cm</Left>
<Height>0cm</Height> <Height>0cm</Height>
<Width>5.13525cm</Width> <Width>5.13525cm</Width>
<Style> <Style>
@@ -2253,7 +2588,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox31</rd:DefaultName> <rd:DefaultName>Textbox31</rd:DefaultName>
<Top>0.28984cm</Top> <Top>0.28984cm</Top>
<Left>0.77992cm</Left> <Left>1.12254cm</Left>
<Height>0.56472cm</Height> <Height>0.56472cm</Height>
<Width>5.95755cm</Width> <Width>5.95755cm</Width>
<ZIndex>1</ZIndex> <ZIndex>1</ZIndex>
@@ -2269,7 +2604,7 @@
</Textbox> </Textbox>
<Line Name="Line7"> <Line Name="Line7">
<Top>0.18344cm</Top> <Top>0.18344cm</Top>
<Left>13.20536cm</Left> <Left>13.54798cm</Left>
<Height>0cm</Height> <Height>0cm</Height>
<Width>5.24108cm</Width> <Width>5.24108cm</Width>
<ZIndex>2</ZIndex> <ZIndex>2</ZIndex>
@@ -2300,7 +2635,7 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox31</rd:DefaultName> <rd:DefaultName>Textbox31</rd:DefaultName>
<Top>0.25456cm</Top> <Top>0.25456cm</Top>
<Left>12.80849cm</Left> <Left>13.15111cm</Left>
<Height>0.6cm</Height> <Height>0.6cm</Height>
<Width>5.95755cm</Width> <Width>5.95755cm</Width>
<ZIndex>3</ZIndex> <ZIndex>3</ZIndex>
@@ -2317,9 +2652,9 @@
</ReportItems> </ReportItems>
<KeepTogether>true</KeepTogether> <KeepTogether>true</KeepTogether>
<Top>0.17639cm</Top> <Top>0.17639cm</Top>
<Left>0.05012cm</Left> <Left>0.16513cm</Left>
<Height>0.85456cm</Height> <Height>0.85456cm</Height>
<Width>19.22367cm</Width> <Width>21.08648cm</Width>
<ZIndex>7</ZIndex> <ZIndex>7</ZIndex>
<Visibility> <Visibility>
<Hidden>=IIf( Globals.PageNumber = Globals.TotalPages, False, True)</Hidden> <Hidden>=IIf( Globals.PageNumber = Globals.TotalPages, False, True)</Hidden>
@@ -2523,6 +2858,54 @@
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt> <Prompt>ReportParameter1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="FechaFactura">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="SerieFolio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Moneda">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="OCVinculada">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Saldo">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Condicion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaVencimiento">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreCapturo">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters> </ReportParameters>
<EmbeddedImages> <EmbeddedImages>
<EmbeddedImage Name="Logo"> <EmbeddedImage Name="Logo">

View File

@@ -2,6 +2,7 @@
Option Explicit On Option Explicit On
Imports System.Data Imports System.Data
Imports System.Math Imports System.Math
Imports ADSNetLibrary.SIGAPI.Models.OC.Response
Imports ClosedXML.Excel Imports ClosedXML.Excel
Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports Extensiones Imports Extensiones
@@ -346,27 +347,36 @@ Partial Class General_SaldosIniciales
End If End If
If RblFormato.SelectedValue = "17" Then If RblFormato.SelectedValue = "17" Then
If Not dt.Columns(17).ColumnName = "Cantidad" Then
Alert("El nombre de la Decimoctava columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError) If Not dt.Columns(17).ColumnName = "Vendedor" Then
Alert("El nombre de la Decimoctava columna debe ser 'Vendedor'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub
End If End If
If Not dt.Columns(18).ColumnName = "Codigo" Then If Not dt.Columns(18).ColumnName = "Cantidad" Then
Alert("El nombre de la Decimonovena columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) Alert("El nombre de la Decimonovena columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub
End If End If
If Not dt.Columns(19).ColumnName = "PU" Then
Alert("El nombre de la Vigésima columna debe ser 'PU'. Favor de corregirlo", TipoMensaje.MsgError) If Not dt.Columns(19).ColumnName = "Codigo" Then
Alert("El nombre de la Vigésima columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub
End If End If
If Not dt.Columns(20).ColumnName = "IVADetalle" Then If Not dt.Columns(20).ColumnName = "PU" Then
Alert("El nombre de la Vigésimo primera columna debe ser 'IVADetalle'. Favor de corregirlo", TipoMensaje.MsgError) Alert("El nombre de la Vigésimo primera columna debe ser 'PU'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub
End If End If
If Not dt.Columns(21).ColumnName = "IEPS" Then If Not dt.Columns(21).ColumnName = "IVADetalle" Then
Alert("El nombre de la Vigésimo segunda columna debe ser 'IEPS'. Favor de corregirlo", TipoMensaje.MsgError) Alert("El nombre de la Vigésimo segunda columna debe ser 'IVADetalle'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub Exit Sub
End If End If
If Not dt.Columns(22).ColumnName = "IEPS" Then
Alert("El nombre de la Vigésimo tercera columna debe ser 'IEPS'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
End If End If
End If End If
@@ -2444,6 +2454,8 @@ Partial Class General_SaldosIniciales
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If End If
Else Else
'ANTICIPOS 'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1, Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
@@ -2479,6 +2491,7 @@ Partial Class General_SaldosIniciales
ElseIf RblFormato.SelectedValue = "17" Then ElseIf RblFormato.SelectedValue = "17" Then
Dim NoEncontrados As Integer = 0 Dim NoEncontrados As Integer = 0
Dim VentasAgregadas As Integer = 0
Dim Encontrados As Integer = 0 Dim Encontrados As Integer = 0
Dim StrRFCNoencontrados As New StringBuilder Dim StrRFCNoencontrados As New StringBuilder
Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("AplicaParaVenta = 1") Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("AplicaParaVenta = 1")
@@ -2519,343 +2532,640 @@ Partial Class General_SaldosIniciales
Dim CountRow As Integer = 1 Dim CountRow As Integer = 1
Dim LastSerieFolioTipoDoc As String = String.Empty Dim LastSerieFolioTipoDoc As String = String.Empty
Dim EsDetalle As Boolean = False Dim EsDetalle As Boolean = False
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = Row("Serie").ToString().Trim
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
Dim Fecha As Date = Row("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then If UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else Dim DTFoliosFiscales As DataTable = dt.FiltraParametros("", "", {"Folio Fiscal"})
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False For Each drFolioFiscal As DataRow In DTFoliosFiscales.Rows
End If Dim FolioFiscalActual As String = drFolioFiscal("Folio Fiscal").ToString
Dim DRVentaActual As DataRow = dt.FiltroPrimero($"[Folio Fiscal] = '{FolioFiscalActual}'")
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{DRVentaActual("Sucursal").ToString()}'")
Dim TipoDocto As String = DRVentaActual("Tipo Documento").ToString().Trim
Dim RFC As String = DRVentaActual("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = DRVentaActual("Serie").ToString().Trim
Dim Folio As Integer = DRVentaActual("Folio").ToString().ToEntero()
Dim Fecha As Date = DRVentaActual("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = DRVentaActual("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), DRVentaActual("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), DRVentaActual("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False
End If
Dim SubTotal As Decimal = 0
Dim IVA As Decimal = 0
Dim Total As Decimal = 0
Dim Saldo As Decimal = 0
Dim RetIVA As Decimal = 0
Dim RetISR As Decimal = 0
Dim IEPS As Decimal = 0
SubTotal = DRVentaActual("SubTotal").ToString().ToDecimal
IVA = DRVentaActual("IVA").ToString().ToDecimal
Total = DRVentaActual("Total").ToString().ToDecimal
Saldo = DRVentaActual("Saldo").ToString().ToDecimal
RetIVA = DRVentaActual("Ret IVA").ToString().ToDecimal
RetISR = DRVentaActual("Ret ISR").ToString().ToDecimal
IEPS = DRVentaActual("IEPS").ToString().ToDecimal
Dim Moneda As String = DRVentaActual("Moneda").ToString()
Dim TipoCambio As String = DRVentaActual("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), DRVentaActual("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
'Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), DRVentaActual("Folio Fiscal").ToString(), "")
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(DRVentaActual("PorcentajeIVA").ToString().ToDecimal, 2), 0)
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(DRVentaActual("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(DRVentaActual("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), DRVentaActual("Pedido").ToString(), "")
GuardaLog(Sucursal + "-" + DRVentaActual("Folio").ToString())
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
Dim Folio2 As String = "" ' Row("Folio2").ToString()
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
'Dim CantidadDetalle As Decimal = 0
'Dim PUDetalle As Decimal = 0
'Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
Dim SubTotal As Decimal = 0 Dim TotalDetalles As Decimal = 0
Dim IVA As Decimal = 0 For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
Dim Total As Decimal = 0 Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
Dim Saldo As Decimal = 0 Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
Dim RetIVA As Decimal = 0 Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
Dim RetISR As Decimal = 0 Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
Dim IEPS As Decimal = 0 TotalDetalles += (CantidadDetalle * PuDetalle) + IVADetalle + IEPSDetalle
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next Next
Else
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If
Dim Moneda As String = Row("Moneda").ToString()
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero() If IEPS > 0 Then
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "") PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(DRVentaActual("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0) End If
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
GuardaLog(Sucursal + "-" + Row("Folio").ToString()) If Math.Abs(TotalDetalles - Total) > 0.01 Then
'Temporalmente SE BORRARA ErrorVentas = True
Dim Transaccion As String = "" ' Row("Transaccion2").ToString() Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
Dim Folio2 As String = "" ' Row("Folio2").ToString() Exit For
Dim CodCliente As String = "" 'Row("CodCliente2").ToString() End If
Dim IEPSDetalle As Decimal = 0
Dim CantidadDetalle As Decimal = 0
Dim PUDetalle As Decimal = 0
Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
If IEPS > 0 Then If Vendedor <> "" Then
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0) CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
End If If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
If RblFormato.SelectedValue = "17" Then If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
Dim CodigoDetalle As String = Row("Codigo").ToString If TipoCambio.Trim.ToDecimal < 10 Then
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If DrDetalles IsNot Nothing Then If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
CvePS = DrDetalles("CvePS").ToString().ToEntero() TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero() Else
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero() TipoCambio = GlobalTipoCambio(Fecha).ToString()
Else End If
Alert($"El código del producto no se encontro, error en registro {CountRow}")
End If
End If
If TipoCambio = "" Then TipoCambio = "1"
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
If Not ErrorVentas Then
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, CveMoneda, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not CvePrePoliza > 0 Then
ErrorVentas = True ErrorVentas = True
End If End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If End If
IEPSDetalle = Row("IEPS").ToString.ToDecimal If Not ErrorVentas Then
CantidadDetalle = Row("Cantidad").ToString.ToDecimal 'Venta
PUDetalle = Row("PU").ToString.ToDecimal If CveCliente > 0 Then
IVADetalle = Row("IVA").ToString.ToDecimal
If CantidadDetalle = 0 Then
Alert($"No se especifico la cantidad, error en registro {CountRow}")
ErrorVentas = True
End If
End If
If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
Dim ObjCliente As New ClsClientes
If ObjCliente.GetSucursales(CveCliente) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
End If
End If
ObjCliente.Dispose()
End If
'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString() GuardaLog(Serie & "-" & Folio)
'PrePóliza If Not EsDetalle Then
If Not EsDetalle Then If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) 0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
End If UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
Else
VentasAgregadas += 1
End If
CveVenta = ObjVentas.CveVenta
End If
If Vendedor <> "" Then
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
'Moneda For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
If TipoCambio.Trim.ToDecimal < 10 Then
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString() Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
Dim PorcentajeIEPSDetalle = dRowDetalle("PorcentajeIEPS").ToString.ToDecimal
Dim CodigoDetalle As String = dRowDetalle("Codigo").ToString
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If DrDetalles IsNot Nothing Then
CvePS = DrDetalles("CvePS").ToString().ToEntero()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
Else
Alert($"El código del producto no se encontro, error en registro {CountRow}")
ErrorVentas = True
End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If
If Not ErrorVentas Then
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PuDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=0, IEPS:=IEPSDetalle, PorcentajeRetISR:=0, PorcentajeIEPS:=PorcentajeIEPSDetalle) Then
ErrorVentas = True
Exit For
End If
End If
Next
Dim ConceptoContable As Integer = 1
Dim ConceptoContablePago As Integer = 2
If TipoDocto = "Egs" Then
ConceptoContable = 12
ConceptoContablePago = 91
End If
If FolioFiscalActual <> "" Then
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscalActual, CveVenta, UsuarioActual.CveEmpresa) Then
ErrorVentas = True
Exit For
End If
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If Not ErrorVentas Then
VentasAgregadas += VentasAgregadas
End If
Else
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1, 1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'_______________________________________________________________
Else Else
TipoCambio = GlobalTipoCambio(Fecha).ToString() NoEncontrados = NoEncontrados + 1
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
'ErrorVentas = True
'Exit For
End If
End If
Next
Else
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
Dim Serie As String = Row("Serie").ToString().Trim
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
Dim Fecha As Date = Row("Fecha").ToString().ToDate
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
EsDetalle = True
Else
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
EsDetalle = False
End If
Dim SubTotal As Decimal = 0
Dim IVA As Decimal = 0
Dim Total As Decimal = 0
Dim Saldo As Decimal = 0
Dim RetIVA As Decimal = 0
Dim RetISR As Decimal = 0
Dim IEPS As Decimal = 0
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
Else
SubTotal = Row("SubTotal").ToString().ToDecimal
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If
Dim Moneda As String = Row("Moneda").ToString()
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
Dim CveMoneda As Integer = 1
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
Dim CveVendedor As Integer = 0
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "")
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0)
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
GuardaLog(Sucursal + "-" + Row("Folio").ToString())
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
Dim Folio2 As String = "" ' Row("Folio2").ToString()
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
Dim IEPSDetalle As Decimal = 0
Dim CantidadDetalle As Decimal = 0
Dim PUDetalle As Decimal = 0
Dim IVADetalle As Decimal = 0
Dim PorcentajeIEPS As Decimal = 0
If IEPS > 0 Then
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
End If
If RblFormato.SelectedValue = "17" Then
Dim CodigoDetalle As String = Row("Codigo").ToString
If CodigoDetalle.Trim.Length > 0 Then
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
If DrDetalles IsNot Nothing Then
CvePS = DrDetalles("CvePS").ToString().ToEntero()
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
Else
Alert($"El código del producto no se encontro, error en registro {CountRow}")
ErrorVentas = True
End If
Else
Alert($"El código es requerido, error en registro {CountRow}")
ErrorVentas = True
End If
IEPSDetalle = Row("IEPS").ToString.ToDecimal
CantidadDetalle = Row("Cantidad").ToString.ToDecimal
PUDetalle = Row("PU").ToString.ToDecimal
IVADetalle = Row("IVA").ToString.ToDecimal
If CantidadDetalle = 0 Then
Alert($"No se especifico la cantidad, error en registro {CountRow}")
ErrorVentas = True
End If End If
End If End If
End If If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
'Si no se especifica TC, se manda como pesos. Dim ObjCliente As New ClsClientes
If TipoCambio = "" Then TipoCambio = "1" If ObjCliente.GetSucursales(CveCliente) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1 CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
'Venta
If CveCliente > 0 Then
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
GuardaLog(Serie & "-" & Folio)
If Not EsDetalle Then
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
End If End If
CveVenta = ObjVentas.CveVenta
End If End If
If Not EsDetalle Then ObjCliente.Dispose()
SubTotal = Row("SubTotal").ToString().ToDecimal End If
IVA = Row("IVA").ToString().ToDecimal
Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal 'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
RetIVA = Row("Ret IVA").ToString().ToDecimal TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
RetISR = Row("Ret ISR").ToString().ToDecimal 'PrePóliza
IEPS = Row("IEPS").ToString().ToDecimal If Not EsDetalle Then
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
End If
If Vendedor <> "" Then
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
If Not CveVendedor > 0 Then CveVendedor = 0
Else
CveVendedor = 0
End If
'Moneda
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
CveMoneda = 1
TipoCambio = "1"
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
CveMoneda = 2
If TipoCambio.Trim.ToDecimal < 10 Then
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
Else
TipoCambio = GlobalTipoCambio(Fecha).ToString()
End If
End If End If
If RblFormato.SelectedValue = "17" Then End If
Dim TotalDetalles As Decimal = SubTotal 'Si no se especifica TC, se manda como pesos.
If PUDetalle > 0 Then If TipoCambio = "" Then TipoCambio = "1"
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
FechaVencimiento = Fecha
End If
'Venta
If CveCliente > 0 Then
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
GuardaLog(Serie & "-" & Folio)
If Not EsDetalle Then
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
ErrorVentas = True
Exit For
Else
VentasAgregadas += 1
End If
CveVenta = ObjVentas.CveVenta
End If End If
If Math.Abs(TotalDetalles - Total) > 0.01 Then If Not EsDetalle Then
ErrorVentas = True SubTotal = Row("SubTotal").ToString().ToDecimal
Alert($"Registro {CountRow} El total no councide con el calculo de los detalles, total: {Total.ToString("###,###,###.00")} calculo detatalles: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia) IVA = Row("IVA").ToString().ToDecimal
Exit For Total = Row("Total").ToString().ToDecimal
Saldo = Row("Saldo").ToString().ToDecimal
RetIVA = Row("Ret IVA").ToString().ToDecimal
RetISR = Row("Ret ISR").ToString().ToDecimal
IEPS = Row("IEPS").ToString().ToDecimal
End If End If
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, If RblFormato.SelectedValue = "17" Then
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
ErrorVentas = True Dim TotalDetalles As Decimal = SubTotal
Exit For If PUDetalle > 0 Then
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
End If
If Math.Abs(TotalDetalles - Total) > 0.01 Then
ErrorVentas = True
Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
Exit For
End If
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
ErrorVentas = True
Exit For
End If
Else
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
ErrorVentas = True
Exit For
End If
End If
Dim ConceptoContable As Integer = 1
Dim ConceptoContablePago As Integer = 2
If TipoDocto = "Egs" Then
ConceptoContable = 12
ConceptoContablePago = 91
End If
If FolioFiscal <> "" Then
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then
ErrorVentas = True
Exit For
End If
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
If Not EsDetalle Then
SubTotal = 0
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
End If End If
Else Else
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
ErrorVentas = True
Exit For
End If
End If
If Not EsDetalle Then
Dim ConceptoContable As Integer = 1 SubTotal = 0
Dim ConceptoContablePago As Integer = 2 IVA = 0
If TipoDocto = "Egs" Then Total = 0
ConceptoContable = 12 Saldo = 0
ConceptoContablePago = 91 RetIVA = 0
End If RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
If FolioFiscal <> "" Then SubTotal += item("SubTotal").ToString().ToDecimal
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then IVA += item("IVA").ToString().ToDecimal
ErrorVentas = True Total += item("Total").ToString().ToDecimal
Exit For Saldo += item("Saldo").ToString().ToDecimal
End If RetIVA += item("Ret IVA").ToString().ToDecimal
End If RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Dim UsaComplementaria As Boolean = False Next
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True 'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
If Not EsDetalle Then 1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
SubTotal = 0 If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
IVA = 0 If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
If IVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If IEPS > 0 Then
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetIVA > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If RetISR > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If ImpuestoLocal > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
If UsaComplementaria Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
'Saldo
If Saldo < Total Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If End If
End If End If
Encontrados = Encontrados + 1
Else Else
NoEncontrados = NoEncontrados + 1
If Not EsDetalle Then StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
'ErrorVentas = True
SubTotal = 0 'Exit For
IVA = 0
Total = 0
Saldo = 0
RetIVA = 0
RetISR = 0
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
SubTotal += item("SubTotal").ToString().ToDecimal
IVA += item("IVA").ToString().ToDecimal
Total += item("Total").ToString().ToDecimal
Saldo += item("Saldo").ToString().ToDecimal
RetIVA += item("Ret IVA").ToString().ToDecimal
RetISR += item("Ret ISR").ToString().ToDecimal
IEPS += item("IEPS").ToString().ToDecimal
Next
'ANTICIPOS
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
End If
End If End If
Encontrados = Encontrados + 1
Else CountRow = CountRow + 1
NoEncontrados = NoEncontrados + 1 Next
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC) End If
'ErrorVentas = True
'Exit For
End If
'**********************************************************************************************************************************************************************************
CountRow = CountRow + 1
Next
If Not ErrorVentas Then If Not ErrorVentas Then
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
If UsuarioActual.CveEmpresa = 189 Then
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", VentasAgregadas, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
Else
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
End If
ObjVentas.Commit() ObjVentas.Commit()
TxtExcel.Text = "" TxtExcel.Text = ""
UpDatos.Update() UpDatos.Update()

View File

@@ -175,14 +175,20 @@
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional" RenderMode="Inline"> <asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate> <ContentTemplate>
<asp:GridView ID="GvDatos" Width="100%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False" <asp:GridView ID="GvDatos" Width="100%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False" OnRowDataBound="GvDatos_RowDataBound"
ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None" DataKeyNames="CveMovimiento,FechaMovto"> ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None" DataKeyNames="CveMovimiento,FechaMovto,CveVenta,CveCompra,FolioDocto">
<Columns> <Columns>
<asp:BoundField DataField="FechaMovto" DataFormatString="{0:dd/MM/yyyy HH:mm:ss}" ItemStyle-Width="90px" HeaderText="Fecha" /> <asp:BoundField DataField="FechaMovto" DataFormatString="{0:dd/MM/yyyy HH:mm:ss}" ItemStyle-Width="90px" HeaderText="Fecha" />
<asp:BoundField DataField="Almacen" HeaderText="Almacén" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" /> <asp:BoundField DataField="Almacen" HeaderText="Almacén" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Concepto" HeaderText="Movimiento" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" /> <asp:BoundField DataField="Concepto" HeaderText="Movimiento" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:HyperLinkField DataTextField="CodigoPS" DataNavigateUrlFields="CvePS" DataNavigateUrlFormatString="/Ventas/ProductosServicios.aspx?CvePS={0}" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" /> <asp:HyperLinkField DataTextField="CodigoPS" DataNavigateUrlFields="CvePS" DataNavigateUrlFormatString="/Ventas/ProductosServicios.aspx?CvePS={0}" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="TipoMovimiento" HeaderText="Tipo" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Left" /> <asp:BoundField DataField="TipoMovimiento" HeaderText="Tipo" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="FolioDocto" HeaderText="Referencia" ItemStyle-Width="70px" ItemStyle-HorizontalAlign="Left" />
<%--<asp:TemplateField ItemStyle-Width="70px" HeaderText="Referencia">
<ItemTemplate>
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio"> <asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio">
<ItemTemplate> <ItemTemplate>
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" /> <asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />

View File

@@ -72,4 +72,22 @@ Partial Class Inventarios_RepResumenMovimientosDiario
Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs) Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs)
GenerarPDF("PDF") GenerarPDF("PDF")
End Sub End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'veVenta,CveCompra,FolioDocto
Dim CveVenta As Integer = e.Row.DataKey("CveVenta").ToEntero
Dim CveCompra As Integer = e.Row.DataKey("CveCompra").ToEntero
Dim FolioDocto As String = e.Row.DataKey("FolioDocto")
If CveVenta > 0 Then
e.Row.Cells(5).Text = $"<a href='../Ventas/Ventas.aspx?CveVenta={CveVenta}' class='Texto' target='_blank' >{FolioDocto}<a>"
ElseIf CveCompra > 0 Then
e.Row.Cells(5).Text = $"<a href='../Compras/Compras.aspx?CveCompra={CveCompra}' class='Texto' target='_blank' >{FolioDocto}<a>"
End If
End If
End Sub
End Class End Class

View File

@@ -869,7 +869,7 @@
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<ADS:Dropdownlost runat="server" ID="DdlP2" CssClassDdl="select2me" CssStyle="width: 100%;" DataTextField="PSCodigo" DataValueField="CvePS" data-estatus="1" /> <ADS:Dropdownlost runat="server" ID="DdlP2" IncluyeTodos="false" CssClassDdl="select2me" CssStyle="width: 100%;" DataTextField="PSCodigo" DataValueField="CvePS" data-estatus="1" />
</td> </td>
<td> <td>
<asp:DropDownList ID="CboUnidadMedida" CssClass="form-control input-sm " runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Style="width: 100%; max-width: 150px;"></asp:DropDownList> <asp:DropDownList ID="CboUnidadMedida" CssClass="form-control input-sm " runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Style="width: 100%; max-width: 150px;"></asp:DropDownList>

View File

@@ -3148,7 +3148,10 @@ Partial Class OC_OC
ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("<a href='/OC/OC.aspx?OC={0}'>{1}</a>", CveOrdenCompra, SerieFolio), "") ViewState("LigaOCs") = If(CveEstatusNuevo <> CboE.SelectedValue.ToEntero, String.Format("<a href='/OC/OC.aspx?OC={0}'>{1}</a>", CveOrdenCompra, SerieFolio), "")
If CveOrdenCompra > 0 Then If CveOrdenCompra > 0 Then
Dim ImprimirOC As String = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Orden de Compra</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
Dim ImprimirOC As String = String.Format("<a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir {1}</a> ", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)), If(TipoOC = "OC", "Orden de Compra", "Requisición"))
Dim Msg As New StringBuilder Dim Msg As New StringBuilder
'Cuando Estatus = "Autorizada" 'Cuando Estatus = "Autorizada"
@@ -3164,11 +3167,24 @@ Partial Class OC_OC
End If End If
If LigaOCs = "" Then If LigaOCs = "" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, If(TipoOC = "OC", ImprimirOC, "")) If TipoOC.ToUpper = "REQ" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, ImprimirOC)
Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente <br/> {2}", TipoLargo, SerieFolio, If(TipoOC = "OC", ImprimirOC, ""))
End If
Else Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
If TipoOC.ToUpper = "REQ" Then
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, ImprimirOC)
Else
Msg.AppendFormat("La {0} No. <b><font size=""3"" >{1}</font></b>.<br/> Ha sido guardada correctamente<br><br>Orden de Compra:{2} <br/> {3}", TipoLargo, SerieFolio, LigaOCs, If(TipoOC = "OC", ImprimirOC, ""))
End If
End If End If
'IMPRIME LIGA A POLIZAS 'IMPRIME LIGA A POLIZAS
If IDPolizasGeneradas.Count > 0 Then If IDPolizasGeneradas.Count > 0 Then
Msg.Append("<br/><br/> <b>Polizas generadas:</b>") Msg.Append("<br/><br/> <b>Polizas generadas:</b>")

View File

@@ -50,6 +50,11 @@
<div class="portlet-body"> <div class="portlet-body">
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" Width="100%" <asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" Width="100%"

View File

@@ -88,7 +88,7 @@ Partial Class CatSubProyectos
CargaPrecioLista() CargaPrecioLista()
CargaDatos() CargaDatos()
If UsuarioActual.Empresa.UsaContabilidad Then If UsuarioActual.Empresa.UsaContabilidad And UsuarioActual.Empresa.TipoContabilidad = 2 Then
GvDatos.Columns(1).Visible = True GvDatos.Columns(1).Visible = True
DivSegmentoNegocio.Visible = True DivSegmentoNegocio.Visible = True
End If End If

View File

@@ -1427,6 +1427,7 @@
<div class="modal-body"> <div class="modal-body">
<ul> <ul>
<li>{"FolioFactura"}</li> <li>{"FolioFactura"}</li>
<li>{"TipoDocumento"}</li>
<li>{"ImporteFactura"}</li> <li>{"ImporteFactura"}</li>
<li>{"FechaFactura"}</li> <li>{"FechaFactura"}</li>
<li>{"FechaVencimiento"}</li> <li>{"FechaVencimiento"}</li>

View File

@@ -770,7 +770,16 @@ Partial Class Clientes
HplAddVenta.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}", CveCliente) HplAddVenta.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}", CveCliente)
HplAddCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}&Op=Cot", CveCliente) HplAddCotizacion.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveCliente={0}&Op=Cot", CveCliente)
'ImgAddObs.Attributes.Add("onclick", "javascript:PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000); ") 'ImgAddObs.Attributes.Add("onclick", "javascript:PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000); ")
If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero() If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then
Tab.ActiveTabIndex = Request("Opt").ToEntero()
'CARGA LOS DATOS DEL TAB QUE SELECCIONO
Select Case Tab.ActiveTabIndex
Case 2 'Historial de ventas
BtnHistorialVentas_Click(Nothing, EventArgs.Empty)
End Select
End If
CargaDireccionesEnvio() CargaDireccionesEnvio()
CargaAFAsignados() CargaAFAsignados()
@@ -2259,20 +2268,17 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante) Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString()) Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString()) Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString()) Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If End If
End If End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then
@@ -2280,17 +2286,16 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante) Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString()) Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString()) Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString()) Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If End If
End If End If
@@ -2302,16 +2307,15 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante) Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString()) Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString()) Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString()) Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If End If
End If End If
@@ -2320,16 +2324,15 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante) Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio.Value.ToString()) Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString()) Asunto = Asunto.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString()) Asunto = Asunto.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If End If
End If End If
@@ -4417,7 +4420,7 @@ Partial Class Clientes
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"})
Dim Envio As Boolean = Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) Dim Envio As Boolean = Mail.SendMail(UsuarioActual.Empresa, Para, Asunto, Body, Archivos:=LSRutasMail)
If Envio AndAlso GuardarBitacora Then If Envio AndAlso GuardarBitacora Then
Using ObjBitacora As New ClsOIEventos(UsuarioActual:=UsuarioActual) Using ObjBitacora As New ClsOIEventos(UsuarioActual:=UsuarioActual)
@@ -5751,7 +5754,6 @@ Partial Class Clientes
If HdnTipoDocto2.Value.ToString() = "Cot" Then TipoComprobante = "Cotización" If HdnTipoDocto2.Value.ToString() = "Cot" Then TipoComprobante = "Cotización"
If HdnTipoDocto2.Value.ToString() = "Ant" Then TipoComprobante = "Anticipo" If HdnTipoDocto2.Value.ToString() = "Ant" Then TipoComprobante = "Anticipo"
Dim ObjVenta As New ClsVentas Dim ObjVenta As New ClsVentas
Dim Dr As DataRow = Nothing Dim Dr As DataRow = Nothing
If ObjVenta.GetVenta(HdnCveVenta2.Value.ToEntero(), UsuarioActual.CveEmpresa) Then If ObjVenta.GetVenta(HdnCveVenta2.Value.ToEntero(), UsuarioActual.CveEmpresa) Then
@@ -5761,7 +5763,6 @@ Partial Class Clientes
End If End If
ObjVenta.Dispose() ObjVenta.Dispose()
If HdnTipoDocto2.Value.ToString() = "Cot" Then If HdnTipoDocto2.Value.ToString() = "Cot" Then
If UsuarioActual.Empresa.PlantillaMailVentaCotizacion.Trim.Length > 0 Then If UsuarioActual.Empresa.PlantillaMailVentaCotizacion.Trim.Length > 0 Then
@@ -5769,32 +5770,28 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante) Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString()) Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString()) Cuerpo = Cuerpo.Replace("{""Sucursal""}", Dr("SubProyecto").ToString())
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString()) Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", Dr("DescripcionVenta").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
End If End If
End If End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then
Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante) Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString()) Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
@@ -5811,10 +5808,10 @@ Partial Class Clientes
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Cuerpo = Cuerpo.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante) Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString()) Cuerpo = Cuerpo.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Cuerpo = Cuerpo.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Cuerpo = Cuerpo.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Cuerpo = Cuerpo.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Cuerpo = Cuerpo.Replace("{""AtencionA""}", Dr("AtencionA").ToString())
@@ -5830,10 +5827,10 @@ Partial Class Clientes
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa) Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim) Asunto = Asunto.Replace("{""NombreCliente""}", LtlCliente.Text.Trim)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante) Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""SerieFolio""}", HdnSerieFolio2.Value.ToString()) Asunto = Asunto.Replace("{""FolioFactura""}", HdnSerieFolio2.Value.ToString())
If Dr IsNot Nothing Then If Dr IsNot Nothing Then
Asunto = Asunto.Replace("{""Fecha""}", Dr("Fecha").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaFactura""}", Dr("Fecha").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Total""}", Dr("Total").ToString().FormatoNumero()) Asunto = Asunto.Replace("{""ImporteFactura""}", Dr("Total").ToString().FormatoNumero())
Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString()) Asunto = Asunto.Replace("{""FechaVencimiento""}", Dr("FechaVencimiento").ToString().ToDate().ToShortDateString())
Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString()) Asunto = Asunto.Replace("{""Vigencia""}", Dr("Vigencia").ToString())
Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString()) Asunto = Asunto.Replace("{""AtencionA""}", Dr("AtencionA").ToString())

View File

@@ -105,7 +105,7 @@ Partial Class Ventas_PVCobranza
If Not Page.IsPostBack Then If Not Page.IsPostBack Then
Dim Arr As New ArrayList 'Dim Arr As New ArrayList
'Arr.Add("autorizada") 'Arr.Add("autorizada")
'If EnviarNotificacionWhatsApp("526621430964", "solicitud_autorizacion_anticipo_respuesta", Arr) Then 'If EnviarNotificacionWhatsApp("526621430964", "solicitud_autorizacion_anticipo_respuesta", Arr) Then
' Alert("bien") ' Alert("bien")
@@ -339,9 +339,12 @@ Partial Class Ventas_PVCobranza
Private Sub MuestraNoTimbradasCentroCosto() Private Sub MuestraNoTimbradasCentroCosto()
Dim ObjSub As New ClsSubProyectos Dim ObjSub As New ClsSubProyectos
If ObjSub.GetNoTimbradasCentroCosto(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then If ObjSub.GetNoTimbradasCentroCosto(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlSubProyecto.SelectedValue.ToEntero) Then
If ObjSub.DtResultados.Rows.Count > 0 Then If ObjSub.DtResultados.Rows.Count > 0 Then
GvPendientesTimbrar.DataSource = ObjSub.DtResultados.FiltraParametros($"Fecha = '{Now.ToString("dd/MM/yyyy")}'") Dim miFecha As DateTime = Now
Dim fechaSiguiente As DateTime = miFecha.AddDays(1)
Dim filtro As String = String.Format("Fecha >= #{0}# AND Fecha < #{1}#", miFecha.ToString("MM/dd/yyyy"), fechaSiguiente.ToString("MM/dd/yyyy"))
GvPendientesTimbrar.DataSource = ObjSub.DtResultados.FiltraParametros(filtro)
End If End If
End If End If
ObjSub.Dispose() ObjSub.Dispose()
@@ -574,8 +577,12 @@ Partial Class Ventas_PVCobranza
VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal
VentaActual.UsuarioActual = UsuarioActual VentaActual.UsuarioActual = UsuarioActual
VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero
Dim CveVendedor As Integer = DbRowVenta("CveVendedor").ToString.ToEntero Dim CveVendedor As Integer = DbRowVenta("CveVendedor").ToString.ToEntero
Dim ObservacionesAlmacen = DbRowVenta("ObservacionesAlmacen").ToString() Dim ObservacionesAlmacen = DbRowVenta("ObservacionesAlmacen").ToString()
Dim Observaciones = DbRowVenta("Observaciones").ToString()
Dim PedidoContrato = DbRowVenta("PedidoContrato").ToString()
Dim OrdenCompra = DbRowVenta("OrdenCompra").ToString()
If tCveCorte <= 0 AndAlso DbRowVenta("CveCorte").ToString.ToEntero > 0 Then tCveCorte = DbRowVenta("CveCorte").ToString.ToEntero If tCveCorte <= 0 AndAlso DbRowVenta("CveCorte").ToString.ToEntero > 0 Then tCveCorte = DbRowVenta("CveCorte").ToString.ToEntero
@@ -602,7 +609,7 @@ Partial Class Ventas_PVCobranza
CveVentaRemision = HdnCveVenta.Value.ToEntero CveVentaRemision = HdnCveVenta.Value.ToEntero
respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes, ObservacionesAlmacen, VentaContado, PlazoCobranza) respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes, ObservacionesAlmacen, VentaContado, PlazoCobranza, Observaciones, PedidoContrato, OrdenCompra)
If respFactura Is Nothing Then If respFactura Is Nothing Then
MsgError = "Ocurrió un error al generar la factura" MsgError = "Ocurrió un error al generar la factura"
@@ -751,7 +758,7 @@ Partial Class Ventas_PVCobranza
Dim msBuild As New StringBuilder() Dim msBuild As New StringBuilder()
Dim MsgTimbrado As String = "" Dim MsgTimbrado As String = ""
Dim DebeTimbrar As Boolean = False Dim DebeTimbrar As Boolean = True
'SI SE GENERO FACTURA DE INGRESO, TIMBRARLA DESPUES DE REALIZAR EL PAGO 'SI SE GENERO FACTURA DE INGRESO, TIMBRARLA DESPUES DE REALIZAR EL PAGO
If DebeTimbrar AndAlso respFactura IsNot Nothing Then If DebeTimbrar AndAlso respFactura IsNot Nothing Then
@@ -850,7 +857,7 @@ Partial Class Ventas_PVCobranza
UpL.Update() UpL.Update()
End Sub End Sub
Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes, ObservacionesAlmacen As String, VentaConta As Boolean, PlazoCobranza As Integer) As Modelos.Factura.MMensajeFactura Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes, ObservacionesAlmacen As String, VentaConta As Boolean, PlazoCobranza As Integer, Observaciones As String, PedidoContrato As String, OrdenCompra As String) As Modelos.Factura.MMensajeFactura
Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing
Dim SbAlert As New StringBuilder() Dim SbAlert As New StringBuilder()
@@ -893,6 +900,19 @@ Partial Class Ventas_PVCobranza
If TxtImporteEfectivo.Text.ToDecimal > 0 Then DtPagos.Rows.Add({1, TxtImporteEfectivo.Text.ToDecimal}) If TxtImporteEfectivo.Text.ToDecimal > 0 Then DtPagos.Rows.Add({1, TxtImporteEfectivo.Text.ToDecimal})
If TxtNCDev.Text.ToDecimal > 0 Then DtPagos.Rows.Add({21, TxtNCDev.Text.ToDecimal})
If TxtImporteOtrosContado.Text.ToDecimal() > 0 Then
Select Case DdlOtroFormaPago.SelectedValue
Case "1" 'Debito
DtPagos.Rows.Add({18, TxtImporteOtrosContado.Text.ToDecimal})
Case "2" 'Crédito
DtPagos.Rows.Add({4, TxtImporteOtrosContado.Text.ToDecimal})
Case "3" 'Transferencia
DtPagos.Rows.Add({3, TxtImporteOtrosContado.Text.ToDecimal})
End Select
End If
Dim PagoMaximo = DtPagos.MAX("Importe") Dim PagoMaximo = DtPagos.MAX("Importe")
Dim CveFormaPago As Integer = DtPagos.FiltroPrimeroValor("CveFormaPago", $"Importe = {PagoMaximo}").ToEntero() Dim CveFormaPago As Integer = DtPagos.FiltroPrimeroValor("CveFormaPago", $"Importe = {PagoMaximo}").ToEntero()
If CveFormaPago > 0 Then If CveFormaPago > 0 Then
@@ -966,6 +986,11 @@ Partial Class Ventas_PVCobranza
ObjFactura.CveVendedor = CveVendedor ObjFactura.CveVendedor = CveVendedor
ObjFactura.ObservacionesAlmacen = ObservacionesAlmacen
ObjFactura.Observaciones = Observaciones
ObjFactura.PedidoContrato = PedidoContrato
ObjFactura.OrdenCompra = OrdenCompra
Retorno = ObjFactura.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True) Retorno = ObjFactura.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True)
Retorno.Factura = ObjFactura Retorno.Factura = ObjFactura
@@ -1294,7 +1319,7 @@ Partial Class Ventas_PVCobranza
If ObjPVenta.GetVta_MetodosPago(CveCorte) Then If ObjPVenta.GetVta_MetodosPago(CveCorte) Then
If ObjPVenta.DtResultados.Rows.Count > 0 Then If ObjPVenta.DtResultados.Rows.Count > 0 Then
GvMetodosPago.DataSource = ObjPVenta.DtResultados GvMetodosPago.DataSource = ObjPVenta.DtResultados.FiltraParametros(" CveTipoTransaccion <> 2")
GvMetodosPago.DataBind() GvMetodosPago.DataBind()
UpMetodosPago.Update() UpMetodosPago.Update()
End If End If
@@ -1876,11 +1901,12 @@ Partial Class Ventas_PVCobranza
'falta sacar a los usuarios a notificar. 'falta sacar a los usuarios a notificar.
Dim gvr As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow) Dim gvr As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow)
Dim Folio As String = gvr.DataKey("Folio") Dim Folio As String = gvr.DataKey("Folio")
Dim Importe As Decimal = gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
Dim dtt As DataTable = Nothing Dim dtt As DataTable = Nothing
Dim ObjProceso As New ClsSisProcesos Dim ObjProceso As New ClsSisProcesos
If ObjProceso.GetUsuariosconProceso(379, UsuarioActual.CveEmpresa) Then 'proceso para autorizar If ObjProceso.GetUsuariosconProceso(379, UsuarioActual.CveEmpresa) Then 'proceso para autorizar
dtt = ObjProceso.DtResultados.FiltraParametros("", DistinctColumns:={"CveUsuario", "Celular"}) dtt = ObjProceso.DtResultados.FiltraParametros("Celular <> ''", DistinctColumns:={"CveUsuario", "Celular"})
End If End If
ObjProceso.Dispose() ObjProceso.Dispose()
@@ -1893,20 +1919,27 @@ Partial Class Ventas_PVCobranza
If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then
For Each dr As DataRow In dtt.Rows For Each dr As DataRow In dtt.Rows
Dim NumeroTelefono = "" Dim NumeroTelefono = "526621430964"
If EsProduccion Then If EsProduccion Then
NumeroTelefono = String.Format("52{0}", dr("Celular").ToString()) NumeroTelefono = String.Format("52{0}", dr("Celular").ToString())
End If End If
EnvioMsg = ModExtensiones.EnviarNotificacionWhatsApp2(NumeroTelefono, "", $"Solicitud de activación de anticipo.\\nFolio: {Folio}.\\nCliente: {NombreCliente}.") Dim Arr As New ArrayList
Arr.Add(DdlSucursalCorte.SelectedItem.Text)
Arr.Add(NombreCliente)
Arr.Add(Folio)
Arr.Add($"$ {Importe}")
EnvioMsg = EnviarNotificacionWhatsAppPlantilla(NumeroTelefono, "solicitud_autorizacion_anticipo", Arr, $"https://grupodiaz.adssistemas.mx.com/Clientes/Clientes.aspx?CveCliente={CveCliente}")
'EnvioMsg = ModExtensiones.EnviarNotificacionWhatsApp2(NumeroTelefono, "", $"Solicitud de activación de anticipo.\\nFolio: {Folio}.\\nCliente: {NombreCliente}.")
ClsSisNotificaciones.EnviarAlerta("Solicitud de Anticipo", $"Solicitud de activación de anticipo Folio: {Folio} <br/><a href='/Ventas/Clientes.aspx?CveCliente={CveCliente}&op=ant'>Ir Activar</a>", dr("CveUsuario").ToString, Tipo:=TipoNotificacion.ToastInformacionB) ClsSisNotificaciones.EnviarAlerta("Solicitud de Anticipo", $"Solicitud de activación de anticipo Folio: {Folio} <br/><a href='/Ventas/Clientes.aspx?CveCliente={CveCliente}&op=ant'>Ir Activar</a>", dr("CveUsuario").ToString, Tipo:=TipoNotificacion.ToastInformacionB)
Next Next
If EnvioMsg Then
Alert("Se envió una solicitud de autorización", TipoMensaje.ToastInformacion)
'Else
' Alert("No se envió la solicitud de autorización", TipoMensaje.MsgAdvertencia)
End If
End If End If
If EnvioMsg Then
Alert("Se envió una solicitud de autorización")
Else
Alert("No se envió la solicitud de autorización", TipoMensaje.MsgAdvertencia)
End If
UpAnticipos.Update() UpAnticipos.Update()
End Sub End Sub

View File

@@ -69,18 +69,29 @@
<td class="text-right"><b>Nombre del Cliente:</b></td> <td class="text-right"><b>Nombre del Cliente:</b></td>
<td style="width: 250px;"> <td style="width: 250px;">
<ADS:Dropdownlost ID="DdlNombre" runat="server" CssStyle="width: 95%;" DataTextField="NombreComercial" Onselectedindexchange="DdlNombre_selectedindexchange" DataValueField="CveCliente"></ADS:Dropdownlost> <ADS:Dropdownlost ID="DdlNombre" runat="server" CssStyle="width: 95%;" DataTextField="NombreComercial" Onselectedindexchange="DdlNombre_selectedindexchange" DataValueField="CveCliente"></ADS:Dropdownlost>
<asp:DropDownList ID="DdlSucursalCliente" runat="server" Visible="false" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="230px">
<asp:ListItem Selected="True" Text=" - " Value="-1"></asp:ListItem>
</asp:DropDownList>
<%--<asp:DropDownList ID="DdlNombre" runat="server" CssClass="select2me" DataTextField="CodigoNombre" AutoPostBack="true" DataValueField="CveCliente" Width="230px"></asp:DropDownList>--%> <%--<asp:DropDownList ID="DdlNombre" runat="server" CssClass="select2me" DataTextField="CodigoNombre" AutoPostBack="true" DataValueField="CveCliente" Width="230px"></asp:DropDownList>--%>
</td> </td>
<td class="text-right"><b>Vendedor:</b></td>
<td>
<asp:DropDownList ID="DdlVendedor" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Width="228px" >
<asp:ListItem Selected="true" Text="Todos" Value="-1" ></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left" class="text-right"><b>
<%--<td align="left" class="text-right"><b>
<asp:Literal ID="LitSucursalCliente" runat="server" Visible="false">Sucursal del Cliente:</asp:Literal></b> <asp:Literal ID="LitSucursalCliente" runat="server" Visible="false">Sucursal del Cliente:</asp:Literal></b>
<td style="width: 250px;"> <td style="width: 250px;">
<asp:DropDownList ID="DdlSucursalCliente" runat="server" Visible="false" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="230px"> <asp:DropDownList ID="DdlSucursalCliente" runat="server" Visible="false" AppendDataBoundItems="true" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="230px">
<asp:ListItem Selected="True" Text=" - " Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text=" - " Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
</td> </td>
</td> </td>--%>
<%-- <td class="text-right"><b>Código del Cliente:</b></td> <%-- <td class="text-right"><b>Código del Cliente:</b></td>
@@ -165,12 +176,7 @@
</td> </td>
</tr> </tr>
<tr align="left" runat="server" id="TRVendedores" > <tr align="left" runat="server" id="TRVendedores" >
<td class="text-right"><b>Vendedor:</b></td>
<td>
<asp:DropDownList ID="DdlVendedor" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Width="228px" >
<asp:ListItem Selected="true" Text="Todos" Value="-1" ></asp:ListItem>
</asp:DropDownList>
</td>
<td class="text-right"></td> <td class="text-right"></td>
<td> <td>

View File

@@ -244,15 +244,15 @@ Partial Class PopUpBuscarFolio
If ObjCliente.GetSucursales(DdlNombre.SelectedValue.ToEntero) Then If ObjCliente.GetSucursales(DdlNombre.SelectedValue.ToEntero) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados DdlSucursalCliente.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then If ObjCliente.DtResultados.Rows.Count > 0 Then
LitSucursalCliente.Visible = True 'LitSucursalCliente.Visible = True
DdlSucursalCliente.Visible = True DdlSucursalCliente.Visible = True
Else Else
LitSucursalCliente.Visible = False 'LitSucursalCliente.Visible = False
DdlSucursalCliente.Visible = False DdlSucursalCliente.Visible = False
End If End If
Else Else
DdlSucursalCliente.DataSource = Nothing DdlSucursalCliente.DataSource = Nothing
LitSucursalCliente.Visible = False 'LitSucursalCliente.Visible = False
DdlSucursalCliente.Visible = False DdlSucursalCliente.Visible = False
End If End If
ObjCliente.Dispose() ObjCliente.Dispose()

View File

@@ -165,11 +165,24 @@
<div class="row"> <div class="row">
<label class="col-md-2 truncate">Estatus:</label> <label class="col-md-2 truncate">Estatus:</label>
<div class="col-md-4"> <div class="col-md-2">
<asp:CheckBox ID="ChkEstatus" runat="server" /> <asp:CheckBox ID="ChkEstatus" runat="server" />
</div> </div>
<div class="col-md-1">
Usuario:
</div>
<div class="col-md-4">
<asp:Label runat="server" ID="LblUsuario"></asp:Label>
</div>
<div class="col-md-1">
Fecha:
</div>
<div class="col-md-2">
<asp:Label runat="server" ID="LblFechaIng"></asp:Label>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -222,7 +222,7 @@ Partial Class Ventas_Promociones
divBitacora.Visible = True divBitacora.Visible = True
Dim ObjGral As New ClsGenerales() Dim ObjGral As New ClsGenerales()
If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePromocion:=CvePromocion) Then If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePromocion:=CvePromocion) Then
GvBitacora.DataSource = ObjGral.DtResultados GvBitacora.DataSource = ObjGral.DtResultados.FiltraParametros("", "CveHistorialBitacora DESC")
End If End If
ObjGral.Dispose() ObjGral.Dispose()
GvBitacora.DataBind() GvBitacora.DataBind()
@@ -260,12 +260,10 @@ Partial Class Ventas_Promociones
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind() DdlSubProyecto.DataBind()
If EmpresaGrupoDiaz AndAlso PermisoAutorizPromocionPorcentaje Then If PermisoAutorizPromocionPorcentaje Then
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End If End If
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedor.DataBind() DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
@@ -433,6 +431,8 @@ Partial Class Ventas_Promociones
TxtFechaF.Text = Dr("FechaFin").ToString.ToDate.ToShortDateString TxtFechaF.Text = Dr("FechaFin").ToString.ToDate.ToShortDateString
DdlSubProyecto.SelectedValue = Dr("CveSubProyecto").ToString DdlSubProyecto.SelectedValue = Dr("CveSubProyecto").ToString
DdlMarca.SelectedValue = Dr("CveMarca").ToString DdlMarca.SelectedValue = Dr("CveMarca").ToString
LblUsuario.Text = Dr("Usuario").ToString
LblFechaIng.Text = Dr("FechaIng").ToString.ToDate.ToString("dd/MM/yyyy")
If Dr("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValue = Dr("CveVendedor").ToString If Dr("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValue = Dr("CveVendedor").ToString
If Dr("CveCliente").ToString.ToEntero > 0 Then If Dr("CveCliente").ToString.ToEntero > 0 Then
@@ -969,14 +969,20 @@ Partial Class Ventas_Promociones
If Not TieneError And Dr("HoraInicio").ToString <> Dr2("HoraInicio").ToString Then If Not TieneError And Dr("HoraInicio").ToString <> Dr2("HoraInicio").ToString Then
If Not ObjGral.AddHistorialBitacora(372, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraInicio").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraInicio").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
Dim Anterior As String = If(Dr2("HoraInicio").ToString.ToDate.Year = 1900, "", Dr2("HoraInicio").ToString)
If Not ObjGral.AddHistorialBitacora(372, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraInicio").ToString, $"{Dr("CodigoPS").ToString} - { Anterior}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
If Not TieneError And Dr("HoraFin").ToString <> Dr2("HoraFin").ToString Then If Not TieneError And Dr("HoraFin").ToString <> Dr2("HoraFin").ToString Then
If Not ObjGral.AddHistorialBitacora(373, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraFin").ToString, $"{Dr("CodigoPS").ToString} - {Dr2("HoraFin").ToString}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
Dim Anterior As String = If(Dr2("HoraFin").ToString.ToDate.Year = 9999, "", Dr2("HoraFin").ToString)
If Not ObjGral.AddHistorialBitacora(373, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Dr("HoraFin").ToString, $"{Dr("CodigoPS").ToString} - {Anterior}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, "Se elimino " & Dr("CodigoPS").ToString, "PS", "", CvePromocion:=CvePromocion) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If

View File

@@ -629,15 +629,15 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
var CancelacionPagos = Modelos.OpcionesCancelacionPagos.SinPagos; var CancelacionPagos = Modelos.OpcionesCancelacionPagos.SinPagos;
if (UsuarioActual.Empresa.Funcionalidad(109) == "1") if (UsuarioActual.Empresa.Funcionalidad(109) == "1" || UsuarioActual.Empresa.Funcionalidad(382) == "1")
{ {
CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_CancelarIE; CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_CancelarIE;
} }
if (UsuarioActual.Empresa.Funcionalidad(382) == "1") //if (UsuarioActual.Empresa.Funcionalidad(382) == "1")
{ //{
CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_GenerarIxC; // CancelacionPagos = Modelos.OpcionesCancelacionPagos.ConPagos_GenerarIxC;
} //}
retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse, CancelacionPagos: CancelacionPagos); retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse, CancelacionPagos: CancelacionPagos);

View File

@@ -407,6 +407,10 @@
<li> <li>
<asp:HyperLink ID="HLFAgregarOS" Target="_blank" runat="server" Visible="false"> <i class="fa fa-plus"></i> Agregar Orden de Servicio</asp:HyperLink> <asp:HyperLink ID="HLFAgregarOS" Target="_blank" runat="server" Visible="false"> <i class="fa fa-plus"></i> Agregar Orden de Servicio</asp:HyperLink>
</li> </li>
<li id="LiCalcularPromociones" runat="server" visible="false">
<asp:LinkButton ID="LnkCalcularPromociones" runat="server" CausesValidation="False" Text="<i class='fa fa-tag'></i> Aplicar promociones" OnClick="LnkCalcularPromociones_Click"
data-toggle="confirmation" data-popout="true" data-original-title="¿Aplicar Promociones?" data-btn-ok-label="si" />
</li>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:AsyncPostBackTrigger ControlID="LnkImprimir" EventName="Click" /> <asp:AsyncPostBackTrigger ControlID="LnkImprimir" EventName="Click" />
@@ -1338,7 +1342,7 @@
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<asp:Literal ID="LtlPSEdit" runat="server" Visible="false" Text='<%# Eval("PS") %>'></asp:Literal> <asp:Literal ID="LtlPSEdit" runat="server" Visible="false" Text='<%# Eval("PS") %>'></asp:Literal>
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" data-onresult="CargaExistenciaAlmacenes" Onselectedindexchange="DdlPSEdit_SelectedIndexChanged" /> <ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " IncluyeTodos="false" DataTextField="PSCodigo" DataValueField="CvePS" data-onresult="CargaExistenciaAlmacenes" Onselectedindexchange="DdlPSEdit_SelectedIndexChanged" />
<%--<asp:RequiredFieldValidator ID="RFVPS" runat="server" ControlToValidate="DdlPS" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto o Servicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GprGV" CssClass="select2me"></asp:RequiredFieldValidator>--%> <%--<asp:RequiredFieldValidator ID="RFVPS" runat="server" ControlToValidate="DdlPS" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto o Servicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GprGV" CssClass="select2me"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCOPS" runat="server" HighlightCssClass="vco" TargetControlID="RFVPS" Width="300px"></ajax:ValidatorCalloutExtender>--%> <%--<ajax:ValidatorCalloutExtender ID="VCOPS" runat="server" HighlightCssClass="vco" TargetControlID="RFVPS" Width="300px"></ajax:ValidatorCalloutExtender>--%>
</EditItemTemplate> </EditItemTemplate>
@@ -8343,7 +8347,7 @@
<div id="DivCorreoCuentaCliente" runat="server" visible="false" class="row" style="padding-left: 16px;"> <div id="DivCorreoCuentaCliente" runat="server" visible="false" class="row" style="padding-left: 16px;">
<div class="form-group form-md-line-input input-iconright col-xs-6"> <div class="form-group form-md-line-input input-iconright col-xs-6">
<asp:TextBox ID="TxtCorreoCliente" CssClass="form-control" runat="server" MaxLength="300" CausesValidation="true"></asp:TextBox> <asp:TextBox ID="TxtCorreoCliente" CssClass="form-control" runat="server" MaxLength="300" CausesValidation="true"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" CssClass="help-block errorimput" ValidationExpression="(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*;\s*|\s*$))*" ControlToValidate="TxtCorreoCliente" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Email''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardarCliente"></asp:RegularExpressionValidator> <%--<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" CssClass="help-block errorimput" ValidationExpression="(([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*;\s*|\s*$))*" ControlToValidate="TxtCorreoCliente" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Email''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardarCliente"></asp:RegularExpressionValidator>--%>
<label for="<%= TxtCorreoCliente.ClientID.ToString()%>">Email: </label> <label for="<%= TxtCorreoCliente.ClientID.ToString()%>">Email: </label>
<i></i> <i></i>
</div> </div>

View File

@@ -10,6 +10,7 @@ Imports System.Security.Cryptography.X509Certificates
Imports ADSNetLibrary.SIGAPI.Models.CRM.Request Imports ADSNetLibrary.SIGAPI.Models.CRM.Request
Imports ADSNetLibrary.SIGAPI.Services.CRM Imports ADSNetLibrary.SIGAPI.Services.CRM
Imports ADSTimbrado Imports ADSTimbrado
Imports com.itextpdf.text.pdf.languages
Imports Extensiones Imports Extensiones
Imports Microsoft.Reporting.WebForms Imports Microsoft.Reporting.WebForms
Imports Modelos Imports Modelos
@@ -2745,7 +2746,7 @@ Partial Class Ventas
HdnCveCliente.Value = "-1" HdnCveCliente.Value = "-1"
'SI TIENE UN CLIENTE POR DEFECTO DEBE CARGARLO AL INICIAR 'SI TIENE UN CLIENTE POR DEFECTO DEBE CARGARLO AL INICIAR
If UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 Then If UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso (Request("CveVenta") IsNot Nothing AndAlso Request("CveVenta").ToString().ToEntero() <= 0) Then
ViewState("CveCliente") = UsuarioActual.Empresa.Funcionalidad(714).ToEntero() ViewState("CveCliente") = UsuarioActual.Empresa.Funcionalidad(714).ToEntero()
HdnCveCliente.Value = UsuarioActual.Empresa.Funcionalidad(714) HdnCveCliente.Value = UsuarioActual.Empresa.Funcionalidad(714)
RBLPago.SelectedValue = "2" RBLPago.SelectedValue = "2"
@@ -6892,7 +6893,7 @@ Partial Class Ventas
LnkAgregarCliente.Visible = False LnkAgregarCliente.Visible = False
'SI EL CLIENTE ES DIFERENTE DEL PREDETERMINADO Y PERMITE CREDITO, REGRESAR EL METODO DE PAGO A CREDITO 'SI EL CLIENTE ES DIFERENTE DEL PREDETERMINADO Y PERMITE CREDITO, REGRESAR EL METODO DE PAGO A CREDITO
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso CveCliente <> UsuarioActual.Empresa.Funcionalidad(714).ToEntero() AndAlso RBLPago.SelectedValue = "2" AndAlso Me.PermiteCredito AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") Then If (CveVenta <= 0 AndAlso Not EsCreaApartirDe) AndAlso UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso UsuarioActual.Empresa.Funcionalidad(714).ToEntero() > 0 AndAlso CveCliente <> UsuarioActual.Empresa.Funcionalidad(714).ToEntero() AndAlso RBLPago.SelectedValue = "2" AndAlso Me.PermiteCredito AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") Then
RBLPago.SelectedValue = "1" RBLPago.SelectedValue = "1"
End If End If
@@ -7385,18 +7386,7 @@ Partial Class Ventas
If (CveVenta <= 0 AndAlso CveCotizacion <= 0) Or EsCreaApartirDe Or NuevaFactura = 1 OrElse ModalidadEdicion Then If (CveVenta <= 0 AndAlso CveCotizacion <= 0) Or EsCreaApartirDe Or NuevaFactura = 1 OrElse ModalidadEdicion Then
'CveMetodoPagoCliente = ObjCliente.CveMetodoPago 'CveMetodoPagoCliente = ObjCliente.CveMetodoPago
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO VerificaFormaPago()
If Me.CveMetodoPago33Cliente = 1 Then
RBLPago.SelectedValue = "2"
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
'SI ESTA BLOQUEADO EL CREDITO, DEJAR CONTADO
If Not RBLPago.Items(0).Enabled Then
RBLPago.SelectedValue = "2"
End If
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
Else Else
DdlMetodoPago33.SelectedValueExist(Me.CveMetodoPago33Cliente) DdlMetodoPago33.SelectedValueExist(Me.CveMetodoPago33Cliente)
CambiaMetodoPago33() CambiaMetodoPago33()
@@ -7471,6 +7461,29 @@ Partial Class Ventas
'End If 'End If
End Sub End Sub
Private Sub VerificaFormaPago()
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DEL CLIENTE ES PUE, PERMITE CREDITO Y LO TIENE HABILITADO, EL METODO SE CAMBIARA A PPD
If Me.CveMetodoPago33Cliente = 1 AndAlso Me.PermiteCredito AndAlso RBLPago.Items(0).Enabled AndAlso TieneBloqueoPorCreditoVencimiento = 0 Then
Me.CveMetodoPago33Cliente = 3
End If
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO
If Me.CveMetodoPago33Cliente = 1 Then
RBLPago.SelectedValue = "2"
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
'SI ESTA BLOQUEADO EL CREDITO, DEJAR CONTADO
If Not RBLPago.Items(0).Enabled Then
RBLPago.SelectedValue = "2"
End If
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
End If
End Sub
Private Sub HabilitarRemisionesPublicoGeneral() Private Sub HabilitarRemisionesPublicoGeneral()
If UsuarioActual.Empresa.Funcionalidad(381).Trim() <> "" Then If UsuarioActual.Empresa.Funcionalidad(381).Trim() <> "" Then
'SI ESTA BLOQUEADO POR AUTORIZACION, HABILITAR LA OPCION DE REMISION PARA PUBLICO EN GENERAL 'SI ESTA BLOQUEADO POR AUTORIZACION, HABILITAR LA OPCION DE REMISION PARA PUBLICO EN GENERAL
@@ -7765,24 +7778,15 @@ Partial Class Ventas
End If End If
End If End If
Dim tTipoDocto As String = ""
If Not EsFilial AndAlso (((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito) Then If ValorAutorizacion = "3" Then tTipoDocto = "Rem"
If Not EsFilial AndAlso (((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot", tTipoDocto) AndAlso CveVenta > 0)) AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito) Then
'FUNCIONALIDAD 702 - NO VERIFICAR LIMITE DE CRÉDITO Y CANDADOS DE VENTA 'FUNCIONALIDAD 702 - NO VERIFICAR LIMITE DE CRÉDITO Y CANDADOS DE VENTA
If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(589) = "1" Then
'SI EL METODO DE PAGO ES PUE, SELECCIONA CONTADO RBLPago.SelectedValue = "1"
If Me.CveMetodoPago33Cliente = 1 Then RBLPago_SelectedIndexChanged(RBLPago, Nothing)
RBLPago.SelectedValue = "2" UPCondicionesPago.Update()
ElseIf Me.CveMetodoPago33Cliente = 3 Then
RBLPago.SelectedValue = "1"
End If
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
Else
RBLPago.SelectedValue = "1"
RBLPago_SelectedIndexChanged(RBLPago, Nothing)
UPCondicionesPago.Update()
End If
Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
@@ -7941,6 +7945,16 @@ Partial Class Ventas
End If End If
End If End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
DdlSolCreditoTipoDocto.Items.Remove(DdlSolCreditoTipoDocto.Items.FindByValue("Ing"))
End If
End If
End If End If
@@ -8055,6 +8069,24 @@ Partial Class Ventas
End If End If
End If End If
Case "3" ' autorización con vinculación a una venta registrada
Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
Vta.Dispose()
If Opcion > 0 Then
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
Else
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
End If
TrCredito1.Visible = True
ChkSolicitudAutorizacionCredito.Checked = True
LnkSolicitarCredito.Visible = True
divModalidad2.Visible = False
divModalidad3.Visible = True
Me.Bloqueada = True
Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO
'VERIFICAR CANDADOS DE VENTA 'VERIFICAR CANDADOS DE VENTA
@@ -8254,6 +8286,16 @@ Partial Class Ventas
End If End If
End If End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
DdlSolCreditoTipoDocto.Items.Remove(DdlSolCreditoTipoDocto.Items.FindByValue("Ing"))
End If
End If
If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Ped") Then If DdlTipoComprobante.SelectedValue.Contiene("Rem", "PeC", "PA", "Ped") Then
'ENVIO DE FACTURA 'ENVIO DE FACTURA
ChkEnviarFactura.Checked = False ChkEnviarFactura.Checked = False
@@ -9139,7 +9181,11 @@ Partial Class Ventas
Dim DrProducto = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSNuevo).FiltroPrimero("") Dim DrProducto = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSNuevo).FiltroPrimero("")
If Not ValidaAgregarPS(Cantidad, CvePSNuevo, DdlUM.SelectedValue.ToEntero(), PU, DrProducto("CveTipoPS").ToString().ToEntero(), DdlCla.SelectedValue.ToEntero(), DdlSP.SelectedValue.ToEntero(), ObjDescuento, CantidadOriginal:=CantidadOriginal) Then Dim CveUMPS As Integer = DrProducto("CveUnidadMedida").ToString().ToEntero()
DdlUM.SelectedValueExist(CveUMPS)
If Not ValidaAgregarPS(Cantidad, CvePSNuevo, DdlUM.SelectedValue.ToEntero(), PU, DrProducto("CveTipoPS").ToString().ToEntero(), DdlCla.SelectedValue.ToEntero(), DdlSubProyectoDatos.SelectedValue.ToEntero(), ObjDescuento, CantidadOriginal:=CantidadOriginal) Then
Exit Sub Exit Sub
End If End If
@@ -9156,8 +9202,10 @@ Partial Class Ventas
If TmpDT.Rows(e.RowIndex)("CvePS").ToString() <> GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue Then If TmpDT.Rows(e.RowIndex)("CvePS").ToString() <> GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue Then
'eliminar y cargar el ps *** 'eliminar y cargar el ps ***
Dim ConsecutivoActual As Integer = TmpDT.Rows(e.RowIndex)("Consec").ToString().ToEntero()
If DtPromociones IsNot Nothing AndAlso DtPromociones.Rows.Count > 0 Then If DtPromociones IsNot Nothing AndAlso DtPromociones.Rows.Count > 0 Then
ObjDescuento = CalcularDescuentos(GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero(), Cantidad, PU) ObjDescuento = CalcularDescuentos(CvePSNuevo, Cantidad, PU)
End If End If
Dim NumTurnos As Decimal = 0 Dim NumTurnos As Decimal = 0
@@ -9188,13 +9236,32 @@ Partial Class Ventas
End If End If
End If End If
Dim SubProyecto As String = ""
Dim CveSubProyecto As Integer = -1
Dim Proyecto As String = ""
Dim CveProyecto As Integer = -1
If GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem IsNot Nothing Then
Proyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text
CveProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue.ToEntero()
End If
If GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem IsNot Nothing Then
SubProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text
CveSubProyecto = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero()
Else
SubProyecto = DdlSubProyectoDatos.SelectedItem.Text
CveSubProyecto = DdlSubProyectoDatos.SelectedValue.ToEntero()
End If
AgregarProductoServicio(Cantidad, DdlUM.SelectedValue.ToEntero(), DdlUM.SelectedItem.Text, DdlCla.SelectedValue.ToEntero(), DdlCla.SelectedItem.Text, AgregarProductoServicio(Cantidad, DdlUM.SelectedValue.ToEntero(), DdlUM.SelectedItem.Text, DdlCla.SelectedValue.ToEntero(), DdlCla.SelectedItem.Text,
GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedText, GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedText,
GvPS.Rows(e.RowIndex).FCTextBox("TxtObsPS").Text.Trim, PU, ObjDescuento.ImporteDescuento, GvPS.Rows(e.RowIndex).FCTextBox("TxtObsPS").Text.Trim, PU, ObjDescuento.ImporteDescuento,
GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text, CveProyecto, Proyecto,
GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero(), GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text, CveSubProyecto, SubProyecto,
CuentaPredial:=CuentaPredial, CveVentaDetalle:=GvPS.Rows(e.RowIndex).DataKey("CveVentaDetalle").ToString().ToEntero(), SeActualiza:=True, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle, CuentaPredial:=CuentaPredial, CveVentaDetalle:=GvPS.Rows(e.RowIndex).DataKey("CveVentaDetalle").ToString().ToEntero(), SeActualiza:=True, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle,
ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista) ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista, ConsecutivoManual:=ConsecutivoActual)
' TmpDT.Rows(e.RowIndex)("CveUM") = Ddl.SelectedValue ' TmpDT.Rows(e.RowIndex)("CveUM") = Ddl.SelectedValue
' TmpDT.Rows(e.RowIndex)("UM") = Ddl.SelectedItem.Text ' TmpDT.Rows(e.RowIndex)("UM") = Ddl.SelectedItem.Text
@@ -9411,7 +9478,7 @@ Partial Class Ventas
Private Sub GvInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound Private Sub GvInv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then If UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse (UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Dev") Then
e.Row.FCCheckBox("cbInv").Checked = True e.Row.FCCheckBox("cbInv").Checked = True
End If End If
@@ -11079,10 +11146,6 @@ Partial Class Ventas
DebeTimbrar = False DebeTimbrar = False
End If End If
End If End If
'RMF, codigo temporal
If UsuarioActual.CveEmpresa.Contiene(189) Then
DebeTimbrar = False
End If
'Si es AMORTIZACIÓN ANTICIPO SOBRE FACTURA EN CERO no debe timbrar 'Si es AMORTIZACIÓN ANTICIPO SOBRE FACTURA EN CERO no debe timbrar
If DdlTipoAmortizacionAnticipo.SelectedValue = "3" Then If DdlTipoAmortizacionAnticipo.SelectedValue = "3" Then
@@ -16491,7 +16554,7 @@ Partial Class Ventas
Next Next
End If End If
If UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then If factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
Dim Filtro As String = "" Dim Filtro As String = ""
Select Case factura.TipoDocto Select Case factura.TipoDocto
@@ -16579,12 +16642,22 @@ Partial Class Ventas
If drPU IsNot Nothing Then If drPU IsNot Nothing Then
PU = drPU("PU").ToString.ToDecimal PU = drPU("PU").ToString.ToDecimal
Else Else
'sino se encontró valor, manda mensaje 'OBTENGO EL ÚLTIMO COSTO
ErrorList.Add("Ocurrió un error al obtener el costo.<br />") Dim ObjInventarios As New ClsInventarios
OcurrioError = True If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, Dr("CvePS").ToString.ToEntero) Then
Exit For Dim drcosto As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If drcosto IsNot Nothing Then
PU = drcosto("UltimoCosto").ToString.ToDecimal
End If
End If
ObjInventarios.Dispose()
If PU <= 0 Then
'sino se encontró valor, manda mensaje
ErrorList.Add("Ocurrió un error al obtener el costo.<br />")
OcurrioError = True
Exit For
End If
End If End If
End If End If
Dim CveSeccionAlmacen As Integer = -3 Dim CveSeccionAlmacen As Integer = -3
'If AplicaSeccion Then CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacen, CveProducto).FiltroPrimeroValor("CveSeccionAlmacen", "").ToEntero 'If AplicaSeccion Then CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacen, CveProducto).FiltroPrimeroValor("CveSeccionAlmacen", "").ToEntero
@@ -17900,9 +17973,6 @@ Partial Class Ventas
Dim SeTimbro As Boolean = False Dim SeTimbro As Boolean = False
Dim DebeTimbrar As Boolean = True Dim DebeTimbrar As Boolean = True
If UsuarioActual.CveEmpresa.Contiene(189) Then
DebeTimbrar = False
End If
Try Try
If DebeTimbrar Then If DebeTimbrar Then
@@ -17934,16 +18004,27 @@ Partial Class Ventas
End If End If
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant", "Egs") Then If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant", "Egs") Then
'If Not ImprimeAlert Then
Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta)) If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta)) Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.mrt", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.rdlc", UsuarioActual.Empresa.Ruta)) Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.mrt", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.mrt", UsuarioActual.Empresa.Ruta))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta))) MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
End If
Else Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ") Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.rdlc", UsuarioActual.Empresa.Ruta))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
End If
End If End If
End If End If
@@ -18590,6 +18671,25 @@ Partial Class Ventas
Dim DdlPrecioListaEdit = GvRow.FCDropDownList("DdlPrecioListaEdit") Dim DdlPrecioListaEdit = GvRow.FCDropDownList("DdlPrecioListaEdit")
If UsuarioActual.CveEmpresa = 189 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Cot", "Ped") AndAlso GvRow.FCHtmlGenericControl("DivPrecioLista").Visible Then
Using ObjVta As New ClsVentas
If ObjVta.GetPreciosListaSPPermitidos(DdlSubProyectoDatos.SelectedValue.ToEntero(), CvePSParametro, UsuarioActual.CveEmpresa) Then
Dim Dt As DataTable = Nothing
If UsuarioActual.TienePermisoProceso(384) Then
Dt = ObjVta.DtResultados.Copy()
Else
Dt = ObjVta.DtResultados.FiltraParametros("Restringuida = 'False'")
End If
GvRow.FCDropDownList("DdlPrecioListaEdit").DataSource = Dt
GvRow.FCDropDownList("DdlPrecioListaEdit").DataBind()
GvRow.FCDropDownList("DdlPrecioListaEdit").SelectedValueExist(GvRow.DataKey("CvePrecioLista"))
End If
End Using
End If
End If
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSParametro).FiltroPrimero("") Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSParametro).FiltroPrimero("")
If DrPS IsNot Nothing Then If DrPS IsNot Nothing Then
'SUGIERE PRECIO 'SUGIERE PRECIO
@@ -19926,7 +20026,7 @@ Partial Class Ventas
ObjDescuento = ObjDescuentoGral ObjDescuento = ObjDescuentoGral
End If End If
If ValidaAgregarPS(Cantidad, CvePS, DdlUnidadMedida.SelectedValue.ToEntero(), PU, HdnTipoPS.Value.ToEntero(), DdlClasificacion.SelectedValue.ToEntero(), DdlSubProyecto.SelectedValue.ToEntero(), ObjDescuento) Then If ValidaAgregarPS(Cantidad, CvePS, DdlUnidadMedida.SelectedValue.ToEntero(), PU, HdnTipoPS.Value.ToEntero(), DdlClasificacion.SelectedValue.ToEntero(), DdlSubProyectoDatos.SelectedValue.ToEntero(), ObjDescuento) Then
If UsuarioActual.Empresa.Funcionalidad(507) = DdlPS.SelectedValue Then If UsuarioActual.Empresa.Funcionalidad(507) = DdlPS.SelectedValue Then
CvePSAmortizacion = DdlPS.SelectedValue.ToEntero().ToEntero() CvePSAmortizacion = DdlPS.SelectedValue.ToEntero().ToEntero()
@@ -20258,7 +20358,7 @@ Partial Class Ventas
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False, Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "", Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "",
Optional CveActivoFijo As Integer = -1, Optional AFDepreciacion As Decimal = 0D, Optional AFValorInicial As Decimal = 0D, Optional NumTurnos As Decimal = 0D, Optional CantidadConversion As Decimal = 0, Optional CveActivoFijo As Integer = -1, Optional AFDepreciacion As Decimal = 0D, Optional AFValorInicial As Decimal = 0D, Optional NumTurnos As Decimal = 0D, Optional CantidadConversion As Decimal = 0,
Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1) As Boolean Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1, Optional ConsecutivoManual As Integer = 0) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
Try Try
@@ -20301,16 +20401,22 @@ Partial Class Ventas
Row("SubProyecto") = SubProyecto Row("SubProyecto") = SubProyecto
Row("Serie") = Serie Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega Row("TiempoEntrega") = TiempoEntrega
If Modalidad = "U" Then
Row("Orden") = Index If ConsecutivoManual > 0 Then
Row("Orden") = ConsecutivoManual
Else Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero() If Modalidad = "U" Then
If ConsecutivoActual < 0 Then Row("Orden") = Index
ConsecutivoActual = 0 Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
End If
Row("Orden") = ConsecutivoActual + 1
End If End If
Row("Orden") = ConsecutivoActual + 1
End If End If
Dim DrPS As DataRow = Nothing Dim DrPS As DataRow = Nothing
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1 DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
@@ -20415,16 +20521,22 @@ Partial Class Ventas
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana") Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion") Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion") Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
If Modalidad = "U" Then
Row("Consec") = Index If ConsecutivoManual > 0 Then
Row("Consec") = ConsecutivoManual
Else Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero() If Modalidad = "U" Then
If ConsecutivoActual < 0 Then Row("Consec") = Index
ConsecutivoActual = 0 Else
Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
If ConsecutivoActual < 0 Then
ConsecutivoActual = 0
End If
Row("Consec") = ConsecutivoActual + 1
End If End If
Row("Consec") = ConsecutivoActual + 1
End If End If
Row("PS") = DrPS("PS") Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString() Row("CodigoPS") = DrPS("PSCodigo").ToString()
Row("CveTipoPS") = DrPS("CveTipoPS") Row("CveTipoPS") = DrPS("CveTipoPS")
@@ -23771,6 +23883,11 @@ Partial Class Ventas
End If End If
End If End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = True
End If
TxtAtencionA.Enabled = True TxtAtencionA.Enabled = True
UpCliente.Update() UpCliente.Update()
@@ -23778,6 +23895,7 @@ Partial Class Ventas
UpPS.Update() UpPS.Update()
UpCliente.Update() UpCliente.Update()
UPObservaciones.Update() UPObservaciones.Update()
UpnTools.Update()
End Sub End Sub
Private Sub BtnEditarRemision_Click(sender As Object, e As EventArgs) Handles BtnEditarRemision.Click Private Sub BtnEditarRemision_Click(sender As Object, e As EventArgs) Handles BtnEditarRemision.Click
@@ -23904,7 +24022,7 @@ Partial Class Ventas
For Each Row As DataRow In TmpDT.Rows For Each Row As DataRow In TmpDT.Rows
Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString().ToEntero() Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString().ToEntero()
If CveVentaDetalle > 0 Then If CveVentaDetalle > 0 Then
If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario) Then If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
OcurrioError = True OcurrioError = True
Exit For Exit For
End If End If
@@ -23912,7 +24030,7 @@ Partial Class Ventas
If Not ObjVentas.AddVentaDetalle(CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("CveUM").ToString().ToEntero(), If Not ObjVentas.AddVentaDetalle(CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("CveUM").ToString().ToEntero(),
Row("PU").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6), Row("PU").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(), Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(),
CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(),
ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDecimal, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDecimal, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero(), NumTurnos:=Row("NumTurnos").ToString().ToDecimal()) Then ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDecimal, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDecimal, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero(), NumTurnos:=Row("NumTurnos").ToString().ToDecimal()) Then
OcurrioError = True OcurrioError = True
Exit For Exit For
@@ -24842,9 +24960,13 @@ Partial Class Ventas
End Sub End Sub
Private Sub RBLPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLPago.SelectedIndexChanged Private Sub RBLPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLPago.SelectedIndexChanged
LimpiaEscondeContado() LimpiaEscondeContado()
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then Dim EjecutaRecalculaPrecios As Boolean = False
RecalculaPrecios()
End If If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then EjecutaRecalculaPrecios = True
If UsuarioActual.CveEmpresa = 189 Then EjecutaRecalculaPrecios = False
If EjecutaRecalculaPrecios Then RecalculaPrecios(False)
End Sub End Sub
Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True, Optional TipoDoctoViejo As String = "") As Boolean Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True, Optional TipoDoctoViejo As String = "") As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
@@ -25166,14 +25288,14 @@ Partial Class Ventas
Dim ObjCliente As New ClsClientes Dim ObjCliente As New ClsClientes
If ObjCliente.BuscarClienteRFCNombre(TxtRFCNombre.Text, UsuarioActual.CveEmpresa) Then If ObjCliente.BuscarClienteRFCNombre(TxtRFCNombre.Text, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count = 1 AndAlso TxtRFCNombre.Text.Trim() <> "XAXX010101000" Then If ObjCliente.DtResultados.Rows.Count = 1 AndAlso Not TxtRFCNombre.Text.Trim().Contiene("XAXX010101000", "XEXX010101000") Then
RegistraScript("hideDivEC();") RegistraScript("hideDivEC();")
ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero() ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero()
HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString() HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString()
CargaCliente(CveCliente) CargaCliente(CveCliente)
UpCliente.Update() UpCliente.Update()
ElseIf ObjCliente.DtResultados.Rows.Count > 0 AndAlso TxtRFCNombre.Text.Trim() <> "XAXX010101000" Then ElseIf ObjCliente.DtResultados.Rows.Count > 0 AndAlso Not TxtRFCNombre.Text.Trim().Contiene("XAXX010101000", "XEXX010101000") Then
DivBusquedaCliente.Visible = True DivBusquedaCliente.Visible = True
GvBusquedaCliente.DataSource = ObjCliente.DtResultados GvBusquedaCliente.DataSource = ObjCliente.DtResultados
GvBusquedaCliente.DataBind() GvBusquedaCliente.DataBind()
@@ -25202,7 +25324,7 @@ Partial Class Ventas
Private Sub BtnValidarRFC_Click(sender As Object, e As EventArgs) Handles BtnValidarRFC.Click Private Sub BtnValidarRFC_Click(sender As Object, e As EventArgs) Handles BtnValidarRFC.Click
If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then If TxtRFCCliente.Text.ToUpper.Contiene("XAXX010101000", "XEXX010101000") Then
DivNombreCliente.Visible = True DivNombreCliente.Visible = True
DivTipoPersona.Visible = True DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True DivDireccionCliente.Visible = True
@@ -25233,29 +25355,45 @@ Partial Class Ventas
DdlRegimenFiscalCliente.DataBind() DdlRegimenFiscalCliente.DataBind()
CargaComboCFDICliente() CargaComboCFDICliente()
Else Else
Dim ObjCliente As New ClsClientes
If ObjCliente.ValidaClienteRFC(TxtRFCCliente.Text, UsuarioActual.CveEmpresa) Then If TxtRFCCliente.Text.Trim.Length > 2 Then
If ObjCliente.DtResultados.Rows.Count > 0 Then Dim ObjCliente As New ClsClientes
RegistraScript("hideDivEC();") If ObjCliente.ValidaClienteRFC(TxtRFCCliente.Text, UsuarioActual.CveEmpresa) Then
ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero() If ObjCliente.DtResultados.Rows.Count > 0 Then
HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString() RegistraScript("hideDivEC();")
CargaCliente(CveCliente) ViewState("CveCliente") = ObjCliente.DtResultados(0)("CveCliente").ToString().ToEntero()
UpCliente.Update() HdnCveCliente.Value = ObjCliente.DtResultados(0)("CveCliente").ToString()
Else CargaCliente(CveCliente)
DivNombreCliente.Visible = True UpCliente.Update()
DivTipoPersona.Visible = True Else
DivDireccionCliente.Visible = True DivNombreCliente.Visible = True
DivNumeroCPCliente.Visible = True DivTipoPersona.Visible = True
'DivColoniaTelefonoCliente.Visible = True DivDireccionCliente.Visible = True
DivCiudadLocalidadCliente.Visible = True DivNumeroCPCliente.Visible = True
DivEstadoPaisCliente.Visible = True 'DivColoniaTelefonoCliente.Visible = True
DivCorreoCuentaCliente.Visible = True DivCiudadLocalidadCliente.Visible = True
DivBotonesAgregarCliente.Visible = True DivEstadoPaisCliente.Visible = True
DivFormaCliente.Visible = True DivCorreoCuentaCliente.Visible = True
divRegimenCliente.Visible = True DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
divRegimenCliente.Visible = True
End If
End If End If
ObjCliente.Dispose()
Else
DivNombreCliente.Visible = True
DivTipoPersona.Visible = True
DivDireccionCliente.Visible = True
DivNumeroCPCliente.Visible = True
'DivColoniaTelefonoCliente.Visible = True
DivCiudadLocalidadCliente.Visible = True
DivEstadoPaisCliente.Visible = True
DivCorreoCuentaCliente.Visible = True
DivBotonesAgregarCliente.Visible = True
DivFormaCliente.Visible = True
divRegimenCliente.Visible = True
End If End If
ObjCliente.Dispose()
RFVDireccionC.Visible = True RFVDireccionC.Visible = True
RFVNoEC.Visible = True RFVNoEC.Visible = True
@@ -25289,8 +25427,8 @@ Partial Class Ventas
TxtDireccionCliente.Text = DrSP("Calle").ToString() TxtDireccionCliente.Text = DrSP("Calle").ToString()
TxtNumExtCliente.Text = DrSP("NoExt").ToString() TxtNumExtCliente.Text = DrSP("NoExt").ToString()
TxtNumIntCliente.Text = DrSP("NoInt").ToString() TxtNumIntCliente.Text = DrSP("NoInt").ToString()
TxtCorreoCliente.Text = DrSP("Correo").ToString() 'TxtCorreoCliente.Text = DrSP("Correo").ToString()
TxtTelefonoCliente.Text = DrSP("Telefono").ToString() 'TxtTelefonoCliente.Text = DrSP("Telefono").ToString()
End If End If
@@ -25375,6 +25513,31 @@ Partial Class Ventas
RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}") RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}")
End If End If
If TxtRFCCliente.Text.Trim().Length < 12 Then
Alert("El RFC no es valido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlUsoCFDICliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Uso CFDI' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlRegimenFiscalCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Régimen Fiscal' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlMetodoCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Método Pago' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If DdlFormaCliente.SelectedValue.ToEntero() <= 0 Then
Alert("El 'Forma Pago' es requerido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then
Alert("El Regimen fiscal del cliente debe ser <b>'616 - Sin obligaciones fiscales'</b> cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) Alert("El Regimen fiscal del cliente debe ser <b>'616 - Sin obligaciones fiscales'</b> cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
@@ -25419,7 +25582,7 @@ Partial Class Ventas
If ObjCliente.AgregarClienteNoFrecuente(TxtNombreCliente.Text.Trim, TxtDireccionCliente.Text.Trim, TxtNumExtCliente.Text.Trim, TxtNumIntCliente.Text.Trim, If ObjCliente.AgregarClienteNoFrecuente(TxtNombreCliente.Text.Trim, TxtDireccionCliente.Text.Trim, TxtNumExtCliente.Text.Trim, TxtNumIntCliente.Text.Trim,
TxtColoniaCliente.Text.Trim, TxtLocalidadCliente.Text.Trim, TxtCiudadCliente.Text.Trim, DdlEstadoSAT.SelectedValue.ToEntero, TxtColoniaCliente.Text.Trim, TxtLocalidadCliente.Text.Trim, TxtCiudadCliente.Text.Trim, DdlEstadoSAT.SelectedValue.ToEntero,
TxtRFCCliente.Text.Trim, TxtCPCliente.Text.Trim, TxtTelefonoCliente.Text.Trim, TxtCorreoCliente.Text.Trim, TxtRFCCliente.Text.Trim, TxtCPCliente.Text.Trim, TxtTelefonoCliente.Text.Trim, TxtCorreoCliente.Text.Trim,
DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", -1, -1, CvePrecioLista:=CvePrecioLista, DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", DdlMetodoCliente.SelectedValue.ToEntero(), DdlFormaCliente.SelectedValue.ToEntero(), CvePrecioLista:=CvePrecioLista,
RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, CveRegimenFiscal:=CveRegimenFiscal, CveUsoCFDI:=CveUsoCFDI, CveClienteClasificacion:=DdlGiro.SelectedValue.ToEntero()) Then RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, CveRegimenFiscal:=CveRegimenFiscal, CveUsoCFDI:=CveUsoCFDI, CveClienteClasificacion:=DdlGiro.SelectedValue.ToEntero()) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then If ObjCliente.DtResultados.Rows.Count > 0 Then
@@ -26260,7 +26423,7 @@ Partial Class Ventas
sb.Append(" EN SU CONTABILIDAD. </font> ") sb.Append(" EN SU CONTABILIDAD. </font> ")
sb.Append(" <font face=""calibri"" size=""2"">") sb.Append(" <font face=""calibri"" size=""2"">")
sb.Append(" <br /><br /><br /><br /><br />") sb.Append(" <br /><br /><br /><br /><br />")
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>") sb.Append(" <i>Este correo se generó automáticamente, favor de no responder este mensaje.</i>")
sb.Append(" </font>") sb.Append(" </font>")
sb.Append("</body>") sb.Append("</body>")
sb.Append("</html>") sb.Append("</html>")
@@ -26280,7 +26443,7 @@ Partial Class Ventas
sb.Append(" Le hacemos llegar el acuse de cancelación. </font> ") sb.Append(" Le hacemos llegar el acuse de cancelación. </font> ")
sb.Append(" <font face=""calibri"" size=""2"">") sb.Append(" <font face=""calibri"" size=""2"">")
sb.Append(" <br /><br /><br /><br /><br />") sb.Append(" <br /><br /><br /><br /><br />")
sb.Append(" <i>Este correo se generó automaticamente, favor de no responder este mensaje.</i>") sb.Append(" <i>Este correo se generó automáticamente, favor de no responder este mensaje.</i>")
sb.Append(" </font>") sb.Append(" </font>")
sb.Append("</body>") sb.Append("</body>")
sb.Append("</html>") sb.Append("</html>")
@@ -26311,7 +26474,7 @@ Partial Class Ventas
Dim SbCondiciones As New StringBuilder() Dim SbCondiciones As New StringBuilder()
If SaldoAlmacen < 0 AndAlso ChkDevAlm.Checked Then If SaldoAlmacen < 0 AndAlso ChkDevAlm.Checked Then
SbCondiciones.Append("<b>*Se realizará una devolución en automatico al realizar la cancelación.</b>") SbCondiciones.Append("<b>*Se realizará una devolución en automático al realizar la cancelación.</b>")
End If End If
If GvRemisiones.Rows.Count > 0 AndAlso Not DivCanRem.Visible AndAlso Not AplicaCancelarRemision Then If GvRemisiones.Rows.Count > 0 AndAlso Not DivCanRem.Visible AndAlso Not AplicaCancelarRemision Then
@@ -26517,7 +26680,6 @@ Partial Class Ventas
LblCancelarDocumento.Text = sb.ToString() LblCancelarDocumento.Text = sb.ToString()
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
sbExtra.Append("Se generará un saldo a favor con el pago del cliente")
If GvCancelarRemisiones.Rows.Cast(Of GridViewRow).Count(Function(x) x.RowType = DataControlRowType.DataRow) > 0 Then If GvCancelarRemisiones.Rows.Cast(Of GridViewRow).Count(Function(x) x.RowType = DataControlRowType.DataRow) > 0 Then
sbExtra.Append("<br/><b>*Las remisones relacionadas se van a cancelar con la factura</b>") sbExtra.Append("<br/><b>*Las remisones relacionadas se van a cancelar con la factura</b>")
End If End If
@@ -26778,16 +26940,16 @@ Partial Class Ventas
Dim CancelacionPagos = OpcionesCancelacionPagos.SinPagos Dim CancelacionPagos = OpcionesCancelacionPagos.SinPagos
If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then If (UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1") AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
CancelacionPagos = OpcionesCancelacionPagos.ConPagos_CancelarIE CancelacionPagos = OpcionesCancelacionPagos.ConPagos_CancelarIE
End If End If
'PARA GENERAR LA DEVOLUCION DE ALMACEN SIN ESPERAR LA ACEPTACION DEL SAT 'PARA GENERAR LA DEVOLUCION DE ALMACEN SIN ESPERAR LA ACEPTACION DEL SAT
Dim GenerarDevolucionAnticipada As Boolean = False Dim GenerarDevolucionAnticipada As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then 'If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion AndAlso ObjFacturaCancelacion.Pagado > 0 Then
CancelacionPagos = OpcionesCancelacionPagos.ConPagos_GenerarIxC ' CancelacionPagos = OpcionesCancelacionPagos.ConPagos_GenerarIxC
End If 'End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion Then If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ObjFacturaCancelacion.TipoDocto.Contiene("Ing", "Rem") AndAlso Not EsRefacturacion Then
@@ -31805,6 +31967,9 @@ Partial Class Ventas
BtnCrearApartirDe.Visible = False BtnCrearApartirDe.Visible = False
BtnGenerarRemision.Visible = False BtnGenerarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False BtnPermisoEditarCotizacion.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
BtnEditarCotizacion.Visible = False BtnEditarCotizacion.Visible = False
BtnGenerarOS.Visible = False BtnGenerarOS.Visible = False
@@ -32060,7 +32225,7 @@ Partial Class Ventas
LimpiaDocumentoDEV() LimpiaDocumentoDEV()
If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then If UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
DivAlmacen.Visible = True DivAlmacen.Visible = True
LltSalidaAlmacen.Text = "Devolución Almacen" LltSalidaAlmacen.Text = "Devolución Almacen"
@@ -32873,12 +33038,16 @@ Partial Class Ventas
End If End If
End If End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = True
End If
UpPS.Update() UpPS.Update()
UPPDescuento.Update() UPPDescuento.Update()
UPObservaciones.Update() UPObservaciones.Update()
UPCondicionesPago.Update() UPCondicionesPago.Update()
UpCliente.Update() UpCliente.Update()
UpnTools.Update()
End Sub End Sub
Private Sub BtnEditarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEditarCotizacion.Click Private Sub BtnEditarCotizacion_Click(sender As Object, e As EventArgs) Handles BtnEditarCotizacion.Click
@@ -33013,7 +33182,7 @@ Partial Class Ventas
Row("PU").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal() * (1 + Row("PorcentajeIVA").ToString().ToDecimal())), 6), Row("PU").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal, Math.Round((Row("Total").ToString().ToDecimal() * (1 + Row("PorcentajeIVA").ToString().ToDecimal())), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), Row("Obs").ToString(), Row("Descuento").ToString().ToDecimal(), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(),
PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDecimal, TiempoEntrega:=Row("TiempoEntrega").ToString(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDecimal(), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDecimal, TiempoEntrega:=Row("TiempoEntrega").ToString(),
PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal) Then PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDecimal, ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDecimal, CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero()) Then
MensajeError = "Ocurrió un error al guardar las partidas de la cotización" MensajeError = "Ocurrió un error al guardar las partidas de la cotización"
OcurrioError = True OcurrioError = True
Exit For Exit For
@@ -34497,6 +34666,9 @@ Partial Class Ventas
'CUANDO ES CREAR APARTIR DE SE LIMPIAN FUNCIONALIDADES DE DOCUMENTOS YA REGISTRADOS 'CUANDO ES CREAR APARTIR DE SE LIMPIAN FUNCIONALIDADES DE DOCUMENTOS YA REGISTRADOS
BtnGenerarRemision.Visible = False BtnGenerarRemision.Visible = False
BtnEditarRemision.Visible = False BtnEditarRemision.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
BtnPermisoEditarRemision.Visible = False BtnPermisoEditarRemision.Visible = False
BtnPermisoEditarCotizacion.Visible = False BtnPermisoEditarCotizacion.Visible = False
BtnEditarCotizacion.Visible = False BtnEditarCotizacion.Visible = False
@@ -37406,7 +37578,26 @@ Partial Class Ventas
Protected Sub BtnSolicitarCredito_Click(sender As Object, e As EventArgs) Handles BtnSolicitarCredito.Click Protected Sub BtnSolicitarCredito_Click(sender As Object, e As EventArgs) Handles BtnSolicitarCredito.Click
If UsuarioActual.Empresa.Funcionalidad(595) = "3" Then If UsuarioActual.Empresa.Funcionalidad(595) = "3" Then
RegistraScript("$('#DivModalSolicitarCredito').modal('hide')") RegistraScript("$('#DivModalSolicitarCredito').modal('hide')")
Exit Sub
'si el documento existe generará
If CveVenta > 0 Then
Dim ObjVta As New ClsVentas
If ObjVta.AddAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero(), TxtTotal.Text.ToDecimal(), 0, UsuarioActual.CveUsuario, 1, TipoDocumento:="Ing", DiasVencidos:=25, CveVenta:=CveVenta) Then
RegistraScript("$('#DivModalSolicitarCredito').modal('hide')")
Alert("La autorización se agregó correctamente.", TipoMensaje.MsgInformacion)
'signal
Dim mensaje = "<br/> <a target='_blank' href='liga'>La autorización se agregó correctamente.</a>"
ClsSisNotificaciones.EnviarAlerta("Autorización Crédito", mensaje, "100", Tipo:=TipoNotificacion.ToastInformacionB)
End If
ObjVta.Dispose()
Else
'sino existe, solo lo cierra. se crea al guardar.
Exit Sub
End If
End If End If
Dim DiasVencidos As Integer = 0 Dim DiasVencidos As Integer = 0
@@ -38646,7 +38837,8 @@ Partial Class Ventas
End Using End Using
Dim PuedeAplicarDevolucion As Boolean = False Dim PuedeAplicarDevolucion As Boolean = False
'código temporal RMF. para devoluciones de facturas cargadas de saldos iniciales.
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TxtFecha.Text.ToDate.Year < 2025 Then SaldoAlmacen = -1
If SaldoAlmacen < 0 Then If SaldoAlmacen < 0 Then
If DevolucionAlmacen = 0 Then If DevolucionAlmacen = 0 Then
PuedeAplicarDevolucion = True PuedeAplicarDevolucion = True
@@ -39694,7 +39886,7 @@ Partial Class Ventas
RegistraScript("MuestraAnticipos();", "AE") RegistraScript("MuestraAnticipos();", "AE")
End Sub End Sub
Private Sub RecalculaPrecios() Private Sub RecalculaPrecios(ByRef RecalculoPromociones As Boolean, Optional ForzarRecalculo As Boolean = False)
Dim PuedeRecalcular As Boolean = False Dim PuedeRecalcular As Boolean = False
If CveVenta <= 0 OrElse EsCreaApartirDe OrElse (ModalidadEdicion AndAlso Not DdlTipoComprobante.SelectedValue = "Cot") Then If CveVenta <= 0 OrElse EsCreaApartirDe OrElse (ModalidadEdicion AndAlso Not DdlTipoComprobante.SelectedValue = "Cot") Then
@@ -39706,6 +39898,10 @@ Partial Class Ventas
PuedeRecalcular = False PuedeRecalcular = False
End If End If
If ForzarRecalculo Then
PuedeRecalcular = True
End If
If TmpDT IsNot Nothing AndAlso PuedeRecalcular Then If TmpDT IsNot Nothing AndAlso PuedeRecalcular Then
For Each Row As DataRow In TmpDT.Rows For Each Row As DataRow In TmpDT.Rows
Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal() Dim Cantidad As Decimal = Row("Cantidad").ToString().ToDecimal()
@@ -39733,6 +39929,13 @@ Partial Class Ventas
Row("Total") = (Cantidad * PU) Row("Total") = (Cantidad * PU)
Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales) Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
Row("TotalConImpuestos") = (Row("Total").ToString().ToDecimal() - Row("Descuento").ToString().ToDecimal() + Row("ImporteIVA").ToString().ToDecimal()).RoundSQL(2) Row("TotalConImpuestos") = (Row("Total").ToString().ToDecimal() - Row("Descuento").ToString().ToDecimal() + Row("ImporteIVA").ToString().ToDecimal()).RoundSQL(2)
Row("CvePromocionDetalle") = ObjDescuento.CvePromocionDetalle
If ObjDescuento.CvePromocionDetalle > 0 Then
RecalculoPromociones = True
End If
End If End If
Next Next
@@ -39804,7 +40007,9 @@ Partial Class Ventas
BtnsFacturar.Visible = False BtnsFacturar.Visible = False
BtnEditarRemision.Visible = False BtnEditarRemision.Visible = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LiCalcularPromociones.Visible = False
End If
LimpiaDocumentoDEV() LimpiaDocumentoDEV()
CambiaTipoDocto() CambiaTipoDocto()
@@ -40175,5 +40380,17 @@ Partial Class Ventas
Protected Sub BtnRegresarBusqueda_Click(sender As Object, e As EventArgs) Protected Sub BtnRegresarBusqueda_Click(sender As Object, e As EventArgs)
LimpiarAgregarCliente() LimpiarAgregarCliente()
End Sub End Sub
Protected Sub LnkCalcularPromociones_Click(sender As Object, e As EventArgs)
Dim Recalculo As Boolean = False
RecalculaPrecios(Recalculo, ForzarRecalculo:=True)
If Recalculo Then
Alert("Se han recalculado los precios y promociones en base a las condiciones actuales")
Else
Alert("No se han encontrado cambios para los precios y promociones")
End If
End Sub
End Class End Class