This commit is contained in:
2022-01-14 10:56:48 -07:00
18 changed files with 2489 additions and 1882 deletions

View File

@@ -928,7 +928,7 @@ Public Class ClsAcumuladores
#End Region
Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Decimal, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,
CveEmpresa As Integer, ImporteCompras As Decimal, Observaciones As String, Optional CveMovimiento As Integer = -1) As Boolean
CveEmpresa As Integer, ImporteCompras As Decimal, Observaciones As String, FechaIng As DateTime, Optional CveMovimiento As Integer = -1) As Boolean
Dim Retorno As Boolean = False
'Data = New DataTable
@@ -945,6 +945,7 @@ Public Class ClsAcumuladores
.Add("@ImporteCompras", SqlDbType.Money).Value = ImporteCompras
.Add("@Observaciones", SqlDbType.VarChar).Value = Observaciones
.Add("@CveMovimiento", SqlDbType.Int).Value = CveMovimiento
.Add("@FechaIng", SqlDbType.DateTime).Value = FechaIng
End With
Try

View File

@@ -2078,7 +2078,7 @@ Namespace Modelos
For Each RowSalida As DataRow In DtMovimientos.Rows
Dim Cantidad As Decimal = RowSalida("Cantidad").ToString().ToDecimal() * -1
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Cantidad, RowSalida("CveTamaño").ToString.ToEntero, CveConcepto, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Cantidad, RowSalida("CveTamaño").ToString.ToEntero, CveConcepto, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "", factura.Fecha) Then
Retorno = False
Exit For
End If
@@ -2100,7 +2100,7 @@ Namespace Modelos
For Each drow As DataRow In factura.DtDetalle.Rows
If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToDecimal, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0D, "") Then
UsuarioActual.CveEmpresa, 0D, "", factura.Fecha) Then
Resultado = False
Exit For
End If
@@ -2159,7 +2159,7 @@ Namespace Modelos
If factura.Cliente.EsDistribuidor AndAlso factura.CveConceptoMovimiento = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Dr("Cantidad").ToString.ToDecimal(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, factura.Fecha, CveMovimiento:=CveMovimiento) Then
' Mensaje = "Error al guardar Movimientos de distribuidor"
Resultado = False
Exit For

View File

@@ -434,7 +434,7 @@ Public Class Timbrado
End If
#End Region
Dim conector As New Profact.TimbraCFDI33.Conector(AmbienteProductivo)
Dim conector As New Profact.TimbraCFDI40.Conector(AmbienteProductivo)
If Not AmbienteProductivo Then
conector.EstableceCredenciales("mvpNUXmQfK8=")
@@ -442,8 +442,8 @@ Public Class Timbrado
conector.EstableceCredenciales("vSGxMFWnNRy/nDoowxqrqw==|Sia123654")
End If
MsgCancelacion.AppendFormat("-3.2")
Dim resultadoCancelacion As Profact.TimbraCFDI.ResultadoCancelacionAck
resultadoCancelacion = conector.CancelaCFDIAck(RFCEmisor, FolioFiscal)
Dim resultadoCancelacion As Profact.TimbraCFDI.ResultadoCancelacion
resultadoCancelacion = conector.CancelaCFDI40(RFCEmisor, FolioFiscal, CodigoSATMotivoCancelacion, FolioSustitucion)
CancelacionFecha = Now
Dim resp As Profact.TimbraCFDI.ResultadoConsulta
resp = conector.ObtieneCFDI(RFCEmisor, FolioFiscal)
@@ -474,7 +474,7 @@ Public Class Timbrado
Else
MsgCancelacion.AppendFormat("-3.5")
CancelacionAcuse = resp.NumeroError
CancelacionMensaje = resultadoCancelacion.Xml
CancelacionMensaje = resultadoCancelacion.Descripcion
Retorno = False
End If
@@ -704,14 +704,14 @@ Public Class Timbrado
Dim XMLString As String = $"<Envelope xmlns=""http://schemas.xmlsoap.org/soap/envelope/"">
<Body>
<cancelarConOpciones xmlns=""timbrado.ws.pade.mx"">
<contrato xmlns="""">{contrato}</contrato>
<usuario xmlns="""">{UsuarioServicio}</usuario>
<passwd xmlns="""">{PassServicio}</passwd>
<rfcEmisor xmlns="""">{rfcEmisor}</rfcEmisor>
<arregloUUID xmlns="""">{arregloUUID}|{rfcReceptor}|{rfcEmisor}|{Total}</arregloUUID>
<cert xmlns="""">{certBase64}</cert>
<key xmlns="""">{keyBase64}</key>
<keyPass xmlns="""">{keyPass}</keyPass>
<contrato xmlns="""">{contrato}</contrato>
<usuario xmlns="""">{UsuarioServicio}</usuario>
<passwd xmlns="""">{PassServicio}</passwd>
<rfcEmisor xmlns="""">{rfcEmisor}</rfcEmisor>
<arregloUUID xmlns="""">{arregloUUID}|{rfcReceptor}|{rfcEmisor}|{Total}</arregloUUID>
<cert xmlns="""">{certBase64}</cert>
<key xmlns="""">{keyBase64}</key>
<keyPass xmlns="""">{keyPass}</keyPass>
<opciones xmlns="""">{If(TimbraProduccion, "", "MODO_PRUEBA:3")}</opciones>
</cancelarConOpciones>
</Body>

View File

@@ -49,9 +49,11 @@
<li>
<asp:LinkButton ID="LnkEliminar" runat="server" Visible="false" OnClientClick="return confirm('¿Está seguro de eliminar el documento?');" Style="color: #686868;"><i class="fa fa-minus" style="color: #686868;"></i> Eliminar Movimiento</asp:LinkButton>
</li>
<li>
<%--<li>
<asp:LinkButton ID="LnkCancelarComplemento" OnClick="LnkCancelarComplemento_Click" runat="server" Visible="false" Style="color: #686868;"><i class="fa fa-ban" style="color: #686868;"></i> Refacturar Complemento</asp:LinkButton>
</li>
</li>--%>
<li>
<asp:LinkButton ID="LnkCancelarComplementoImporte" OnClick="LnkCancelarComplementoImporte_Click" runat="server" Visible="false" data-btn-ok-label="si" Style="color: #686868;" data-toggle="tooltip" data-placement="left" title="Cancelar Movimiento y Complemento" > <i class="fa fa-pencil"></i> Cancelar Movimiento y Complemento</asp:LinkButton>
@@ -1215,29 +1217,30 @@
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender7" runat="server" HighlightCssClass="vco" TargetControlID="RVTxtFechaCancelacion" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-12">
<asp:CheckBox ID="ChkGeneraCancelacion" CssClass="md-checksd2" Text="Genera Devolución" TextAlign="Right" runat="server" AutoPostBack="true" OnCheckedChanged="ChkGeneraCancelacion_CheckedChanged" />
</div>
</div>
<div class="row">
<div class="col-md-12" id="DVTipoTransacciónCancelar" runat="server" visible ="false">
Movimiento:
<asp:DropDownList ID="DdlTipoTransaccionCancelacion" CssClass="form-control input-sm select2me" runat="server" DataTextField="TipoTransaccion" DataValueField="CveTipoTransaccion" ValidationGroup="GrpCancelarIE">
<asp:ListItem Value="-1">Seleccione uno</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVDdlTipoTransaccionCancelacion" runat="server" ControlToValidate="DdlTipoTransaccionCancelacion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo de Transaccion''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCancelarIE"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEDdlTipoTransaccionCancelacion" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlTipoTransaccionCancelacion" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-12">
<asp:CheckBox ID="ChkGeneraCancelacion" CssClass="md-checksd2" Text="Genera Devolución" TextAlign="Right" runat="server" AutoPostBack="true" OnCheckedChanged="ChkGeneraCancelacion_CheckedChanged" />
</div>
</div>
<div class="row">
<div class="col-md-12" id="DVTipoTransacciónCancelar" runat="server" visible="false">
Movimiento:
<asp:DropDownList ID="DdlTipoTransaccionCancelacion" CssClass="form-control input-sm select2me" runat="server" DataTextField="TipoTransaccion" DataValueField="CveTipoTransaccion" ValidationGroup="GrpCancelarIE">
<asp:ListItem Value="-1">Seleccione uno</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVDdlTipoTransaccionCancelacion" runat="server" ControlToValidate="DdlTipoTransaccionCancelacion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo de Transaccion''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCancelarIE"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEDdlTipoTransaccionCancelacion" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlTipoTransaccionCancelacion" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnCancelarIE" OnClick="BtnCancelarIE_Click" runat="server" CssClass="btn btn-success" Text="Cancelar Movimiento" ValidationGroup="GrpCancelarIE" />
@@ -1367,6 +1370,12 @@
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Motivo" Visible="true" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%">
<ItemTemplate>
<asp:DropDownList runat="server" id="DdlMotivoCancelacion" DataTextField="CodigoSATDescripcion" DataValueField="CveMotivoCancelacion" CssClass="select2me" Visible ="false">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cancelar" Visible="true" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%">
<ItemTemplate>
@@ -1574,6 +1583,25 @@
</div>
</div>
</div>
<div class="row" runat="server" id="DVmotivoCancelacion" visible="false">
<div class="col-md-2">
Motivo de Cancelación:
</div>
<div class="col-md-10">
<asp:DropDownList runat="server" id="DdlMotivoCancelacion" DataTextField="CodigoSATDescripcion" DataValueField="CveMotivoCancelacion" CssClass="select2me" Width="100%" >
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvDdlMotivoCancelacion" runat="server" ControlToValidate="DdlMotivoCancelacion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Motivo de Cancelación''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCancelarComplemento"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCERfvDdlMotivoCancelacion" runat="server" HighlightCssClass="vco" TargetControlID="RfvDdlMotivoCancelacion" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>

View File

@@ -837,6 +837,13 @@ Partial Class Bancos_IE
'End If
DdlMotivoCancelacion.DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa)
DdlMotivoCancelacion.DataBind()
DdlMotivoCancelacion.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
End If
End Sub
@@ -1096,7 +1103,7 @@ Partial Class Bancos_IE
HplDepositado.NavigateUrl = $"/Bancos/IE.aspx?CveIE={CveIEDeposito2}"
End If
LnkCancelarComplemento.Visible = False
'LnkCancelarComplemento.Visible = False
LnkCancelarComplementoImporte.Visible = False
UppEliminarIE.Update()
@@ -1267,7 +1274,7 @@ Partial Class Bancos_IE
LnkEliminar.Visible = False
'LnkCancelar.Visible = False
LnkCancelarComplemento.Visible = True
'LnkCancelarComplemento.Visible = True
LnkCancelarComplementoImporte.Visible = True
End If
@@ -1275,7 +1282,7 @@ Partial Class Bancos_IE
Else
BtnEditar.Visible = False
LnkCancelarComplemento.Visible = False
' LnkCancelarComplemento.Visible = False
LnkCancelarComplementoImporte.Visible = False
DVGenerarComplementoModal.Visible = False
End If
@@ -4587,22 +4594,23 @@ Partial Class Bancos_IE
Dim ErrorCancelarComplemento As Boolean = True
If CancelarComplemento Then
Dim ObjCancelacion As New Timbrado
'Dim ObjBanco As New ClsBancos
If EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptorCancelar) Then
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=Date.Now, SelloCancelacion:="") Then
CargaComplementosPago()
RegistraScript("$('#ModalCancelarComplemetno').modal('hide');")
ErrorCancelarComplemento = False
Alert("El complemento se cancelo correctamente.")
End If
Dim CveMotivoCancelacion As Integer = DdlMotivoCancelacion.SelectedValue.ToEntero
Dim CveSATMotivoCancelacion As Integer = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveMotivoCancelacion:=CveMotivoCancelacion).FiltroPrimeroValor("CveSATMotivoCancelacion").ToEntero()
Else
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion) Then
If CveMotivoCancelacion <= 0 Or CveSATMotivoCancelacion <= 0 Then
Alert("Debe de elegir un motivo de cancelación.", TipoMensaje.MsgAdvertencia)
ErrorCancelarComplemento = True
End If
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse) Then
If Not ErrorCancelarComplemento Then
Dim ObjCancelacion As New Timbrado
If EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptorCancelar) Then
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=Date.Now, SelloCancelacion:="") Then
CargaComplementosPago()
RegistraScript("$('#ModalCancelarComplemetno').modal('hide');")
ErrorCancelarComplemento = False
@@ -4610,12 +4618,25 @@ Partial Class Bancos_IE
End If
Else
Alert("Se presento un error al cancelar el complemento.", TipoMensaje.MsgAdvertencia)
End If
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse) Then
CargaComplementosPago()
RegistraScript("$('#ModalCancelarComplemetno').modal('hide');")
ErrorCancelarComplemento = False
Alert("El complemento se cancelo correctamente.")
End If
Else
Alert("Se presento un error al cancelar el complemento.", TipoMensaje.MsgAdvertencia)
End If
End If
End If
Else
ErrorCancelarComplemento = False
End If
@@ -5804,11 +5825,9 @@ Partial Class Bancos_IE
#End Region
#Region " COMPLEMENTOS PAGO "
Private Sub CargaComplementosPago()
Dim ObjBancos As New ClsBancos
If UsuarioActual.CveRol = 1 Then
@@ -5823,9 +5842,7 @@ Partial Class Bancos_IE
GvComplementoPagos.DataSource = ObjBancos.DtResultados
If ObjBancos.DtResultados.FiltraParametros(" Estatus IN (1,3) ").Rows.Count = 0 And Tipo.ToUpper = "CARGO" And CveCliente > 0 And CveEstatusIE <> 2 And ObjBancos.DtResultados.FiltraParametros(" CveIECancelacion > 0 ").Rows.Count = 0 Then
DVGenerarComplementoModal.Visible = True
End If
Else
GvComplementoPagos.DataSource = Nothing
End If
@@ -5833,6 +5850,14 @@ Partial Class Bancos_IE
If CveIE > 0 Then
If ObjBancos.GetComplementoPagos(-1, CveIE, -1, UsuarioActual.CveEmpresa) Then
If ObjBancos.DtResultados.FiltraParametros(" Estatus IN (1,3) ").Rows.Count = 0 And Tipo.ToUpper = "CARGO" And CveCliente > 0 And CveEstatusIE <> 2 Then
DVGenerarComplementoModal.Visible = True
End If
If ObjBancos.DtResultados.FiltraParametros(" Estatus IN (1,3) ").Rows.Count = 1 And Tipo.ToUpper = "CARGO" And CveCliente > 0 And CveEstatusIE <> 2 Then
DVmotivoCancelacion.Visible = True
End If
' GvComplementoPagos.DataSource = ObjBancos.DtResultados.FiltraParametros("", DistinctColumns:={"CveComplementoPago", "SerieFolio", "Fecha", "CveIE"})
@@ -5844,11 +5869,14 @@ Partial Class Bancos_IE
End If
End If
ObjBancos.Dispose()
GvComplementoPagos.DataBind()
UpComplementoPagos.Update()
UpEliminarCotizacion.Update() 'Esto se ocupa para mostrar DVmotivoCancelacion
'ObjBancos.Dispose()
'GvComplementoPagos.DataBind()
'UpComplementoPagos.Update()
@@ -5863,9 +5891,16 @@ Partial Class Bancos_IE
e.Row.Cells(4).Text = String.Format("<a class="" texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"" target=""_blank""><i class="" fa fa-ad-pdf""></i></a>", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CVECOMPLEMENTOPAGO={1}&CVEIE={2}", e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("CveComplementoPago"), e.Row.DBCampo("CveIE"))))
If e.Row.DataKey("Estatus").Contiene("1", "3") Then
e.Row.FCLinkButton("LnkCancelarComplemetno").Visible = True
e.Row.FCDropDownList("DdlMotivoCancelacion").Visible = True
e.Row.FCDropDownList("DdlMotivoCancelacion").DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("DdlMotivoCancelacion").DataBind()
e.Row.FCDropDownList("DdlMotivoCancelacion").Items.Insert(0, New ListItem("Seleccione Uno", "-1"))
Else
e.Row.FCLinkButton("LnkCancelarComplemetno").Visible = False
e.Row.FCDropDownList("DdlMotivoCancelacion").Visible = False
End If
ElseIf e.Row.DataKey("Tipo") = "Egs" Then
@@ -5876,6 +5911,7 @@ Partial Class Bancos_IE
GvComplementoPagos.Columns(6).Visible = False
GvComplementoPagos.Columns(7).Visible = False
GvComplementoPagos.Columns(8).Visible = False
GvComplementoPagos.Columns(9).Visible = False
End If
@@ -5950,13 +5986,13 @@ Partial Class Bancos_IE
Return Retorno
End Function
Protected Sub LnkCancelarComplemento_Click(sender As Object, e As EventArgs)
If ChkConciliado.Checked Then
Alert("El documento seleccionado no se puede eliminar porque se encuentra conciliado.", TipoMensaje.MsgError)
Exit Sub
End If
Confirmacion("¿Seguro que desea Cancelar el documento por Sustitución?", "", String.Format("document.location.href=""/Ventas/ClientesAbonar.aspx?CveIESustitucion={0}&CveCliente={1}&CveMoneda={2}""", CveIE, CveCliente, CveMoneda), "")
End Sub
'Protected Sub LnkCancelarComplemento_Click(sender As Object, e As EventArgs)
' If ChkConciliado.Checked Then
' Alert("El documento seleccionado no se puede eliminar porque se encuentra conciliado.", TipoMensaje.MsgError)
' Exit Sub
' End If
' Confirmacion("¿Seguro que desea Cancelar el documento por Sustitución?", "", String.Format("document.location.href=""/Ventas/ClientesAbonar.aspx?CveIESustitucion={0}&CveCliente={1}&CveMoneda={2}""", CveIE, CveCliente, CveMoneda), "")
'End Sub
#End Region
@@ -6126,6 +6162,9 @@ Partial Class Bancos_IE
CalendarioCancelacion.StartDate = fechaCancelacion.ToDate
UpEliminarCotizacion.Update()
End If
RegistraScript("ShowDivCancelarIE();")
End Sub
Protected Sub BtnDesconciliar_Click(sender As Object, e As EventArgs)
@@ -6605,6 +6644,16 @@ Partial Class Bancos_IE
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow)
Dim CveMotivoCancelacion As Integer = GvRow.FCDropDownList("DdlMotivoCancelacion").SelectedValue.ToEntero
Dim CveSATMotivoCancelacion As Integer = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveMotivoCancelacion:=CveMotivoCancelacion).FiltroPrimeroValor("CveSATMotivoCancelacion").ToEntero()
If CveMotivoCancelacion <= 0 Or CveSATMotivoCancelacion <= 0 Then
Alert("Debe de elegir un motivo de cancelación.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
CveComplementoPagoCancelar = GvRow.DataKey("CveComplementoPago").ToEntero
FolioFiscalCancelar = GvRow.DataKey("FolioFiscal").ToString
'' Dim RFCEmisor As String = UsuarioActual.Empresa.RFC
@@ -6622,7 +6671,7 @@ Partial Class Bancos_IE
End If
Else
Dim CveSATMotivoCancelacion As Integer = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveSATMotivoCancelacion:=2).FiltroPrimeroValor("CveSATMotivoCancelacion").ToEntero()
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
@@ -6681,6 +6730,8 @@ Partial Class Bancos_IE
RegistraScript("$('#ModalCancelarComplemetno').modal('show');")
DivFechaCancelación.Visible = True
CargaComplementosPago()
UpModalCancelarComplemetno.Update()
Else

View File

@@ -177,7 +177,7 @@
</ItemTemplate>
<ItemStyle Width="5%" />
</asp:TemplateField>
<asp:TemplateField Visible="true">
<asp:TemplateField Visible="false">
<HeaderTemplate>Cancelar SAT</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="LnkCancelarFolioFiscal" OnClick="LnkCancelaFolioFiscal" runat="server" AlternateText="Eliminar" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="confirmar" data-btn-ok-label="si" Visible="false" />
@@ -189,49 +189,7 @@
</ContentTemplate>
</asp:UpdatePanel>
<div id="ModalDivMail" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Correo</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpSendMail" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:HiddenField ID="HdnSerieFolioPago" runat="server" ClientIDMode="Static" Value="-1" />
<div class="row">
<div class="col-xs-4">Para:</div>
<div class="col-xs-8">
<asp:TextBox ID="TxtParaMail" runat="server" Width="370px" CssClass="form-control" ClientIDMode="Static"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="col-xs-4">
Con copia para:<br />
(Separar con: ;)
</div>
<div class="col-xs-8">
<asp:TextBox ID="TxtCC" runat="server" TextMode="MultiLine" Columns="3" Rows="3" CssClass="form-control"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnSendMail" Text="Enviar" runat="server" ClientIDMode="Static" CssClass="btn btn-primary" ValidationGroup="GrpEnviarEmail" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>

View File

@@ -150,9 +150,9 @@ Partial Class Bancos_RepComplementoPago
e.Row.FCHyperLink("HplPDF").Visible = True : e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CompP&EXT=pdf&CveComplementoPago={0}&SerieFolio={1}&CveIE={2}", e.Row.DBCampo("CveComplementoPago"), e.Row.DBCampo("SerieFolioPago").ToString.Replace("&", "%26%"), e.Row.DBCampo("CveIE").ToString)))
e.Row.FCLinkButton("LnkSendMail").Visible = True
If DdlOpcion.SelectedValue.ToEntero = 2 Then
e.Row.FCLinkButton("LnkCancelarFolioFiscal").Visible = True
End If
'If DdlOpcion.SelectedValue.ToEntero = 2 Then
' e.Row.FCLinkButton("LnkCancelarFolioFiscal").Visible = True
'End If
End If
@@ -529,7 +529,11 @@ Partial Class Bancos_RepComplementoPago
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
End Sub
End Class

View File

@@ -524,7 +524,7 @@
<BreakLocation>Start</BreakLocation>
</PageBreak>
<KeepTogether>true</KeepTogether>
<Top>7.61812in</Top>
<Top>7.49312in</Top>
<Left>0.20879in</Left>
<Height>3.59384in</Height>
<Width>7.78795in</Width>
@@ -1058,7 +1058,7 @@
</Image>
</ReportItems>
<KeepTogether>true</KeepTogether>
<Top>3.95038in</Top>
<Top>3.82538in</Top>
<Left>0.05395in</Left>
<Height>1.21305in</Height>
<Width>8.22763in</Width>
@@ -1086,32 +1086,6 @@
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>BDH Baterias Distribuciones de Hermosillo SA de CV</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>6.7pt</FontSize>
<FontWeight>Normal</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>BBD021220APA</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>6.7pt</FontSize>
<FontWeight>Normal</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
@@ -1153,10 +1127,10 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox32</rd:DefaultName>
<Top>2.84726cm</Top>
<Top>3.48226cm</Top>
<Left>0.13011cm</Left>
<Height>2.40928cm</Height>
<Width>4.15958cm</Width>
<Height>2.1447cm</Height>
<Width>4.08234cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
@@ -1178,7 +1152,7 @@
<Value>= IIF(Parameters!Tipo.Value = "INGRESO","FACTURA","NOTA DE CRÉDITO")</Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>14pt</FontSize>
<FontSize>11pt</FontSize>
<FontWeight>SemiBold</FontWeight>
</Style>
</TextRun>
@@ -1198,7 +1172,7 @@
</Style>
</TextRun>
<TextRun>
<Value>Serie: </Value>
<Value>Serie: </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontSize>9.16pt</FontSize>
@@ -1213,6 +1187,14 @@
<Color>Red</Color>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>Myriad Pro</FontFamily>
<FontWeight>Bold</FontWeight>
<Color>Red</Color>
</Style>
</TextRun>
<TextRun>
<Value> Folio: </Value>
<Style>
@@ -1446,9 +1428,9 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>0.05159in</Top>
<Top>0.05022in</Top>
<Left>5.03983in</Left>
<Height>1.74708in</Height>
<Height>1.62345in</Height>
<Width>3.24175in</Width>
<ZIndex>4</ZIndex>
<Style>
@@ -1558,7 +1540,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox40</rd:DefaultName>
<Top>4.5675cm</Top>
<Top>4.25cm</Top>
<Left>13.31398cm</Left>
<Height>1.42163cm</Height>
<Width>7.72123cm</Width>
@@ -2217,7 +2199,7 @@
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DsOC</DataSetName>
<Top>2.38003in</Top>
<Top>2.25503in</Top>
<Left>0.05854in</Left>
<Height>0.34081in</Height>
<Width>8.22304in</Width>
@@ -2243,7 +2225,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>7.09581cm</Top>
<Top>6.77831cm</Top>
<Left>0.14868cm</Left>
<Height>0.14316cm</Height>
<Width>20.88652cm</Width>
@@ -2274,7 +2256,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>7.86718cm</Top>
<Top>7.54968cm</Top>
<Left>15.09838cm</Left>
<Height>0.14316cm</Height>
<Width>5.93682cm</Width>
@@ -2311,7 +2293,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>ImporteLetra</rd:DefaultName>
<Top>3.18176in</Top>
<Top>3.05676in</Top>
<Left>2.30237in</Left>
<Height>0.18861in</Height>
<Width>5.97921in</Width>
@@ -2341,7 +2323,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>9.82898cm</Top>
<Top>9.51148cm</Top>
<Left>0.13011cm</Left>
<Height>0.1cm</Height>
<Width>20.88652cm</Width>
@@ -2372,7 +2354,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>13.2915cm</Top>
<Top>12.974cm</Top>
<Left>0.18043cm</Left>
<Height>0.14316cm</Height>
<Width>20.85477cm</Width>
@@ -2406,7 +2388,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>7.3448cm</Top>
<Top>7.0273cm</Top>
<Left>5.62203cm</Left>
<Height>0.34219cm</Height>
<Width>9.30316cm</Width>
@@ -2524,7 +2506,7 @@
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>7.30953cm</Top>
<Top>6.99203cm</Top>
<Left>15.09838cm</Left>
<Height>0.48004cm</Height>
<Width>5.93682cm</Width>
@@ -3022,7 +3004,7 @@
</Textbox>
</ReportItems>
<KeepTogether>true</KeepTogether>
<Top>15.84926cm</Top>
<Top>15.53176cm</Top>
<Left>0.13702cm</Left>
<Height>2.97096cm</Height>
<Width>20.89818cm</Width>
@@ -3297,7 +3279,7 @@
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet3</DataSetName>
<Top>2.88204in</Top>
<Top>2.75704in</Top>
<Left>0.05854in</Left>
<Height>0.34081in</Height>
<Width>2.08542in</Width>
@@ -3315,7 +3297,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>"REVISAR SU FACTURA Y SUS PRODUCTOS AL MOMENTO DE RECIBIRLAS, YA QUE NO SE REALIZARAN CAMBIOS EN FACTURA </Value>
<Value>"REVISAR SU FACTURA Y SUS PRODUCTOS AL MOMENTO DE RECIBIRLAS, YA QUE NO SE REALIZARAN CAMBIOS EN FACTURA.</Value>
<Style>
<FontFamily>myriad pro</FontFamily>
<FontSize>6.5pt</FontSize>
@@ -3344,7 +3326,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>8.71223cm</Top>
<Top>8.39473cm</Top>
<Height>1.07794cm</Height>
<Width>20.85477cm</Width>
<ZIndex>16</ZIndex>
@@ -3467,7 +3449,7 @@
</Style>
</Textbox>
<Line Name="Line4">
<Top>15.01864cm</Top>
<Top>14.70114cm</Top>
<Left>14.38124cm</Left>
<Height>0cm</Height>
<Width>6.65396cm</Width>
@@ -3498,7 +3480,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox39</rd:DefaultName>
<Top>15.19503cm</Top>
<Top>14.87753cm</Top>
<Left>14.38124cm</Left>
<Height>0.6cm</Height>
<Width>6.65396cm</Width>
@@ -3537,7 +3519,7 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox38</rd:DefaultName>
<Top>13.57236cm</Top>
<Top>13.25486cm</Top>
<Left>14.38124cm</Left>
<Height>0.67938cm</Height>
<Width>6.65396cm</Width>
@@ -3552,8 +3534,57 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox16">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>BDH</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
<TextRun>
<Value> Baterias Distribuciones de Hermosillo SA de CV</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Left</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox16</rd:DefaultName>
<Top>2.16641cm</Top>
<Left>0.13011cm</Left>
<Height>1.21002cm</Height>
<Width>4.23014cm</Width>
<ZIndex>22</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Height>28.47838cm</Height>
<Height>28.16088cm</Height>
<Style>
<Border>
<Style>None</Style>

View File

@@ -41,12 +41,14 @@ Partial Class General_CatCategorias
If ObjCategorias.AddCategorias(TxtCategoria.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
TxtCategoria.Text = ""
Alert("El nueva Categoría se guardó correctamente.", TipoMensaje.MsgInformacion)
GlobalDTGralCategorias(UsuarioActual.CveEmpresa) = Nothing
End If
ElseIf HdnModalidadCategoria.Value = "U" Then
If ObjCategorias.UpdateCategoria(TxtCategoria.Text.Trim, ChkEstatus.Checked, HdnIDCategoria.Value.ToEntero) Then
TxtCategoria.Text = ""
ChkEstatus.Checked = True
Alert("La Categoría se actualizó correctamente.", TipoMensaje.MsgInformacion)
GlobalDTGralCategorias(UsuarioActual.CveEmpresa) = Nothing
End If
End If

View File

@@ -15,6 +15,15 @@ Partial Class Inventarios_RecepcionUsados
Private _dtDatos As DataTable
Public Property DtClientes() As DataTable
Get
Return CType(ViewState("DtClientes"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtClientes") = value
End Set
End Property
Public Property DtMovimientos() As DataTable
Get
Return CType(ViewState("DtMovimientos"), DataTable)
@@ -331,6 +340,7 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaInicial()
GeneraRNCFromURL()
End If
End Sub
@@ -405,7 +415,76 @@ Partial Class Inventarios_RecepcionUsados
'DdlProducto2.setEsWebService(True)
'DdlProducto2.Attributes.Add("data-metodo", "getpsusados")
End Sub
Private Sub GeneraRNCFromURL()
Dim RFC As String = IfNull(Request("RFC"), "").ToString()
Dim CveAlmacen As Integer = IfNull(Request("CveAlmacen"), "-1").ToString().ToEntero()
Dim Cantidad As Decimal = IfNull(Request("Cantidad"), "0").ToString().ToDecimal()
Dim Fecha As DateTime = IfNull(Request("Fecha"), Now.ToString("dd/MM/yyyy")).ToString().ToDateTime()
If Not String.IsNullOrEmpty(RFC) Then
If DtClientes Is Nothing Then
Alert("No se encontraron clientes para filtrar", TipoMensaje.MsgError)
Exit Sub
End If
Dim RowCliente = DtClientes.FiltroPrimero(String.Format("RFC='{0}'", RFC))
If RowCliente Is Nothing Then
Alert("No se encontro el cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If CveAlmacen <= 0 Then
Alert("Es necesario especificar el almacen", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If Cantidad <= 0 Then
Alert("Es necesario especificar la cantidad", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero()
DdlClientes.SelectedValueExist(CveCliente)
DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty)
DdlAlmacen.SelectedValueExist(CveAlmacen)
TxtFecha.Text = Fecha.ToString("dd/MM/yyyy")
Dim CvePS As Integer = 403591 'EXTRA CHICO
Dim CveTamanio As Integer = 1
Dim CveUM As Integer = -1
Dim PU As Decimal = 0
Dim RowTamanio As DataRow = GlobalDTAcumTamaños.FiltroPrimero($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo > 0 AND CvePSCargo={CvePS}")
Dim CodigoPS As String = ""
Dim UnidaMedida As String = ""
If RowTamanio IsNot Nothing Then
PU = RowTamanio("Cargo").ToString.ToDecimal()
CodigoPS = RowTamanio("CodigoPS").ToString()
CveTamanio = RowTamanio("CveTamaño").ToString().ToEntero()
CveUM = RowTamanio("CveUM").ToString().ToEntero()
UnidaMedida = "" 'RowTamanio("UnidadMedida").ToString()
AddNew(CvePS, CodigoPS, CveUM, UnidaMedida, Cantidad, PU, "", "-1", "-1", "-1", "", "", -1, "", "", CveTamanio)
Dim CveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen={CveAlmacen}").ToEntero
CreaRemisionNC(CveCliente, CveSubProyecto, 1)
If Me.ObjRemisionNC IsNot Nothing Then
Guardar(True)
Else
Alert("No se pudo generar la RNC", TipoMensaje.MsgError)
End If
Else
Alert("No se encontro el tamaño", TipoMensaje.MsgError)
End If
End If
End Sub
#Region " PERMISOS PAGINAS "
@@ -1165,7 +1244,7 @@ Partial Class Inventarios_RecepcionUsados
If EsDistribuidor AndAlso RBLOpcion.SelectedValue.ToEntero = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, Now, CveMovimiento:=CveMovimiento) Then
Mensaje = "Error al guardar Movimientos de distribuidor"
ErrorMovInv = True
Exit For
@@ -1850,9 +1929,11 @@ Partial Class Inventarios_RecepcionUsados
#Region "DDL CLIENTE / CLIENTE SUCURSAL - SELECTED INDEX CHANGED"
Private Sub InicializaClientes(Todos As Boolean)
DtClientes = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(If(Todos, "", "EsDistribuidor = 1"))
DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(If(Todos, "", "EsDistribuidor = 1"))
DdlClientes.DataSource = DtClientes
DdlClientes.DataBind()
DdlClientes.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlClientes.SelectedValue = "-1"
@@ -2219,11 +2300,12 @@ Partial Class Inventarios_RecepcionUsados
Me.ObjRemisionNC.TipoDocto = "RNC"
Me.ObjRemisionNC.RefDocto = ""
Me.ObjRemisionNC.CveMesa = -1
Me.ObjRemisionNC.Fecha = Now
Dim Fecha As DateTime = TxtFecha.Text.ToDateTime()
Me.ObjRemisionNC.Fecha = Fecha
Me.ObjRemisionNC.CvePrePoliza = -1
Me.ObjRemisionNC.FechaPago = Now
Me.ObjRemisionNC.FechaPago = Fecha
Me.ObjRemisionNC.MotivoDescuento = ""
Me.ObjRemisionNC.FechaEjecucion = Now
Me.ObjRemisionNC.FechaEjecucion = Fecha
Me.ObjRemisionNC.UsuarioCreo = UsuarioActual.Usuario
Me.ObjRemisionNC.CveCondicionEntrega = -1
Me.ObjRemisionNC.CondicionEntrega = ""

File diff suppressed because it is too large Load Diff

View File

@@ -155,14 +155,16 @@ Partial Class Ventas_ClientesAbonar
ViewState("Mail") = value
End Set
End Property
Private Property CveIESustitucion As Integer
Get
Return ViewState("CveIESustitucion").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveIESustitucion") = value
End Set
End Property
'Private Property CveIESustitucion As Integer
' Get
' Return ViewState("CveIESustitucion").ToString.ToEntero
' End Get
' Set(value As Integer)
' ViewState("CveIESustitucion") = value
' End Set
'End Property
Private Property CFDIRelacionadoSustitucion As String
Get
If ViewState("CFDIRelacionadoSustitucion") Is Nothing Then
@@ -244,9 +246,9 @@ Partial Class Ventas_ClientesAbonar
FechaCorteIE = DateTime.Now
If CveIESustitucion > 0 Then
CargaIESustituir()
End If
'If CveIESustitucion > 0 Then
' CargaIESustituir()
'End If
Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, Now.Day - 1, Now.Day)
Fecha = (dia.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString).ToDate
@@ -334,7 +336,9 @@ Partial Class Ventas_ClientesAbonar
Retorno = True
CargaCuentas()
CargaTipoTransaccion()
TxtFechaDocumento.Text = IIf(CveIESustitucion > 0, FechaCorteIE.ToShortDateString, Now.ToShortDateString).ToString
'TxtFechaDocumento.Text = IIf(CveIESustitucion > 0, FechaCorteIE.ToShortDateString, Now.ToShortDateString).ToString
TxtFechaDocumento.Text = Now.ToShortDateString.ToString
TxtAboneA.Enabled = False
LbEncabezado.Text = String.Format("<a href='/Ventas/Clientes.aspx?CveCliente={0}' target='_blank' class='Texto'>{1}</a>", CveCliente, ObjCliente.NombreComercial)
@@ -372,10 +376,12 @@ Partial Class Ventas_ClientesAbonar
Dim FechaI As String = IfNull(Request("FechaI"), "-1")
Dim FechaF As String = IfNull(Request("FechaF"), "-1")
Dim FechaCorte As Date = IIf(CveIESustitucion > 0, (FechaCorteIE.ToDate).ToShortDateString, DateTime.Now.AddYears(1).ToShortDateString).ToString.ToDate
'Dim FechaCorte As Date = IIf(CveIESustitucion > 0, (FechaCorteIE.ToDate).ToShortDateString, DateTime.Now.AddYears(1).ToShortDateString).ToString.ToDate
Dim FechaCorte As Date = DateTime.Now.AddYears(1).ToShortDateString.ToString.ToDate
Dim SumDescuentoProntoPago As Double = 0.0
If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte, CveIESustitucion:=CveIESustitucion) Then
'If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte, CveIESustitucion:=CveIESustitucion) Then
If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte) Then
Dim TmpCxCAux As DataTable
TmpCxCAux = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio")
SumDescuentoProntoPago = TmpCxCAux.SUM("DescuentoProntoPago")
@@ -385,6 +391,7 @@ Partial Class Ventas_ClientesAbonar
CveMoneda = pCveMoneda
End If
TxtImporte.Text = ""
TxtObservaciones.Text = ""
If SumDescuentoProntoPago > 0.0 Then
@@ -701,12 +708,12 @@ Partial Class Ventas_ClientesAbonar
'02-05-2018 MANDAMOS CANCELAR EL COMPLEMENTO A SUSTITUIR
Dim ErrorCancelarIE As Boolean = False
If CveIESustitucion > 0 Then
ErrorCancelarIE = CancelarIE()
If ErrorCancelarIE Then
Exit Sub
End If
End If
'If CveIESustitucion > 0 Then
' ErrorCancelarIE = CancelarIE()
' If ErrorCancelarIE Then
' Exit Sub
' End If
'End If
Dim ObjIE As New ClsBancos()
Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL)
@@ -761,7 +768,8 @@ Partial Class Ventas_ClientesAbonar
End If
CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, TxtAboneA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, CveIESustitucion:=CveIESustitucion, CveProveedorIntermediario:=CveProvIntermediario)
'CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, TxtAboneA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, CveIESustitucion:=CveIESustitucion, CveProveedorIntermediario:=CveProvIntermediario)
CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, TxtAboneA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, CveIESustitucion:=-1, CveProveedorIntermediario:=CveProvIntermediario)
Else
If RblTipoPago.SelectedValue.Contiene("3") Then
CveIE = DdlIngreso.SelectedValue.ToEntero
@@ -1726,16 +1734,18 @@ Partial Class Ventas_ClientesAbonar
End If
'BITACORA
If MsgError = "" Then
If CveIESustitucion > 0 And ComplementoSustitucionGenerado Then
If Not ObjEvento.AddEventoBitacora($"Complemento de pago Cancelado por sustitución con Folio <a href='/Bancos/IE.aspx?CveIE={CveIE}' target='_blank' class='Texto'>{TxtFolio.Text}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveIE:=CveIESustitucion) Then
MsgError = "Ocurrió un error al agregar la bitacora"
End If
If Not ObjEvento.AddEventoBitacora($"Complemento de pago Generado por Sustitución de <a href='/Bancos/IE.aspx?CveIE={CveIESustitucion}' target='_blank' class='Texto'>{FolioIECancelado}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveIE:=CveIE) Then
MsgError = "Ocurrió un error al agregar la bitacora"
End If
End If
End If
'If MsgError = "" Then
' If CveIESustitucion > 0 And ComplementoSustitucionGenerado Then
' If Not ObjEvento.AddEventoBitacora($"Complemento de pago Cancelado por sustitución con Folio <a href='/Bancos/IE.aspx?CveIE={CveIE}' target='_blank' class='Texto'>{TxtFolio.Text}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveIE:=CveIESustitucion) Then
' MsgError = "Ocurrió un error al agregar la bitacora"
' End If
' If Not ObjEvento.AddEventoBitacora($"Complemento de pago Generado por Sustitución de <a href='/Bancos/IE.aspx?CveIE={CveIESustitucion}' target='_blank' class='Texto'>{FolioIECancelado}</a>", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveIE:=CveIE) Then
' MsgError = "Ocurrió un error al agregar la bitacora"
' End If
' End If
'End If
Catch ex As Exception
MsgError = "Ocurrió un error al guardar el movimiento"
@@ -2269,7 +2279,7 @@ Partial Class Ventas_ClientesAbonar
DdlCuenta.SelectedValue = "-1"
DdlTipoTransaccion.SelectedValue = "-1"
CveIESustitucion = "-1"
'CveIESustitucion = "-1"
CFDIRelacionadoSustitucion = "-1"
FechaCorteIE = DateTime.Now.ToDate
IDPoliza = -1
@@ -2500,7 +2510,8 @@ Partial Class Ventas_ClientesAbonar
Dim ObjBancos As New ClsBancos
If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, If(CveIESustitucion > 0, 2, 1), UsuarioActual.CveEmpresa, -1) Then
'If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, If(CveIESustitucion > 0, 2, 1), UsuarioActual.CveEmpresa, -1) Then
If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, 1, UsuarioActual.CveEmpresa, -1) Then
If Not ObjBancos.DtResultados.Rows.Count > 0 Then
ObjBancos.Dispose()
Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia)
@@ -2512,7 +2523,9 @@ Partial Class Ventas_ClientesAbonar
ObjBancos.IniciaTransacSQL()
If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=If(CveIESustitucion > 0, True, False)) Then
'If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=If(CveIESustitucion > 0, True, False)) Then
If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=False) Then
ObjBancos.Commit()
ComplementoSustitucionGenerado = True
@@ -2883,183 +2896,185 @@ Partial Class Ventas_ClientesAbonar
#End Region
#Region "COMPLEMENTO DE PAGO - ELIMINAR POR SUSTITUCION"
Protected Sub CargaIESustituir()
Dim ObjIE As New ClsBancos()
If ObjIE.GetBancosIE(CveIESustitucion, UsuarioActual.CveEmpresa) Then
If ObjIE.DtResultados.Rows.Count > 0 Then
FechaCorteIE = ObjIE.FechaDocumento
CveMoneda = ObjIE.CveMoneda
CveMonedaFiltro = CveMoneda
IDPoliza = ObjIE.IDPoliza
FolioIECancelado = ObjIE.Folio
End If
End If
ObjIE.Dispose()
UpDatos.Update()
End Sub
Function CancelarIE() As Boolean
Dim ErrorCancelar = False
If Not IsDate(TxtFechaDocumento.Text.ToDate) Then
Alert("El campo fecha cancelación es incorrecto. Por favor verifique y vuelva a intentar")
Return True
End If
'Protected Sub CargaIESustituir()
' Dim ObjIE As New ClsBancos()
' If ObjIE.GetBancosIE(CveIESustitucion, UsuarioActual.CveEmpresa) Then
' If ObjIE.DtResultados.Rows.Count > 0 Then
' FechaCorteIE = ObjIE.FechaDocumento
' CveMoneda = ObjIE.CveMoneda
' CveMonedaFiltro = CveMoneda
' IDPoliza = ObjIE.IDPoliza
' FolioIECancelado = ObjIE.Folio
' End If
' End If
' ObjIE.Dispose()
' UpDatos.Update()
'End Sub
Dim Banc As New ClsBancos
Banc.IniciaTransacSQL()
'Function CancelarIE() As Boolean
' Dim ErrorCancelar = False
Dim ObjAC As ClsContPAQi = Nothing
If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then
ObjAC = New ClsContPAQi(UsuarioActual.Empresa)
ObjAC.IniciaTransacSQL()
End If
' If Not IsDate(TxtFechaDocumento.Text.ToDate) Then
' Alert("El campo fecha cancelación es incorrecto. Por favor verifique y vuelva a intentar")
' Return True
' End If
Dim IdPolizaNueva = -1
Dim FolioPolizaNueva = -1
' Dim Banc As New ClsBancos
' Banc.IniciaTransacSQL()
Try
'CANCELA IE CONTABILIZADO
If IDPoliza > 0 Then
If ObjAC Is Nothing Then
ErrorCancelar = True
End If
' Dim ObjAC As ClsContPAQi = Nothing
' If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then
' ObjAC = New ClsContPAQi(UsuarioActual.Empresa)
' ObjAC.IniciaTransacSQL()
' End If
If Not ErrorCancelar Then
Dim dt As DataTable
If ObjAC.GetPoliza(IDPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
dt = ObjAC.DtResultados
' Dim IdPolizaNueva = -1
' Dim FolioPolizaNueva = -1
' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS)
If dt.Rows(0)("FechaPol").ToString.ToDate.Month < TxtFechaDocumento.Text.ToDate.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < TxtFechaDocumento.Text.ToDate.Year Then
IdPolizaNueva = ObjAC.AddPoliza(3, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), 0, 0, UsuarioActual.CveUsuario, TxtFechaDocumento.Text.ToDate)
' Try
' 'CANCELA IE CONTABILIZADO
' If IDPoliza > 0 Then
' If ObjAC Is Nothing Then
' ErrorCancelar = True
' End If
If IdPolizaNueva > 0 Then
FolioPolizaNueva = ObjAC.Folio
' If Not ErrorCancelar Then
' Dim dt As DataTable
' If ObjAC.GetPoliza(IDPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
' dt = ObjAC.DtResultados
'CREA POLIZA NEGATIVA
For Each dr As DataRow In dt.Rows
If Not ObjAC.AddMovimiento(IdPolizaNueva, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "True", dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), dr("IdSegNeg").ToString.ToEntero, TxtFechaDocumento.Text.ToDate, "") Then
ErrorCancelar = True : Exit For
End If
Next
' ' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS)
' If dt.Rows(0)("FechaPol").ToString.ToDate.Month < TxtFechaDocumento.Text.ToDate.Month Or dt.Rows(0)("FechaPol").ToString.ToDate.Year < TxtFechaDocumento.Text.ToDate.Year Then
' IdPolizaNueva = ObjAC.AddPoliza(3, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), 0, 0, UsuarioActual.CveUsuario, TxtFechaDocumento.Text.ToDate)
'AJUSTA POLIZA
If Not ErrorCancelar Then
If Not ObjAC.AjustaPoliza(IdPolizaNueva) Then
ErrorCancelar = True
End If
End If
' If IdPolizaNueva > 0 Then
' FolioPolizaNueva = ObjAC.Folio
'CANCELA IE
If Not ErrorCancelar Then
If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
ErrorCancelar = True
End If
End If
' 'CREA POLIZA NEGATIVA
' For Each dr As DataRow In dt.Rows
' If Not ObjAC.AddMovimiento(IdPolizaNueva, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "True", dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, String.Format("Cancelacion: {0}", dt.Rows(0)("Concepto").ToString), dr("IdSegNeg").ToString.ToEntero, TxtFechaDocumento.Text.ToDate, "") Then
' ErrorCancelar = True : Exit For
' End If
' Next
Else
ErrorCancelar = True
End If
' 'AJUSTA POLIZA
' If Not ErrorCancelar Then
' If Not ObjAC.AjustaPoliza(IdPolizaNueva) Then
' ErrorCancelar = True
' End If
' End If
Else
' 'CANCELA IE
' If Not ErrorCancelar Then
' If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
' ErrorCancelar = True
' End If
' End If
'LIMPIA POLIZA PONIENDO IMPORTE EN CEROS
For Each dr As DataRow In dt.Rows
If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then
ErrorCancelar = True : Exit For
End If
Next
' Else
' ErrorCancelar = True
' End If
'AJUSTA POLIZA
If Not ErrorCancelar Then
If Not ObjAC.AjustaPoliza(IDPoliza) Then
ErrorCancelar = True
End If
End If
' Else
'CANCELA IE
If Not ErrorCancelar Then
If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, False, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
ErrorCancelar = True
End If
End If
' 'LIMPIA POLIZA PONIENDO IMPORTE EN CEROS
' For Each dr As DataRow In dt.Rows
' If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then
' ErrorCancelar = True : Exit For
' End If
' Next
End If
' 'AJUSTA POLIZA
' If Not ErrorCancelar Then
' If Not ObjAC.AjustaPoliza(IDPoliza) Then
' ErrorCancelar = True
' End If
' End If
End If
End If
Else
' 'CANCELA IE
' If Not ErrorCancelar Then
' If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, False, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
' ErrorCancelar = True
' End If
' End If
If FechaCorteIE.Month < TxtFechaDocumento.Text.ToDate.Month Or FechaCorteIE.Year < TxtFechaDocumento.Text.ToDate.Year Then
'CANCELA IE MES ANTERIOR
If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
ErrorCancelar = True
End If
Else
'CANCELA IE MES ACTUAL
If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, False, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
ErrorCancelar = True
End If
End If
' End If
End If
' End If
' End If
' Else
If Not ErrorCancelar Then
If Banc.GetComplementoPagos(-1, CveIESustitucion, -1, UsuarioActual.CveEmpresa) Then
' If FechaCorteIE.Month < TxtFechaDocumento.Text.ToDate.Month Or FechaCorteIE.Year < TxtFechaDocumento.Text.ToDate.Year Then
' 'CANCELA IE MES ANTERIOR
' If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
' ErrorCancelar = True
' End If
' Else
' 'CANCELA IE MES ACTUAL
' If Not Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIESustitucion, False, IdPolizaNueva, FolioPolizaNueva, TxtFechaDocumento.Text.ToDate) > 0 Then
' ErrorCancelar = True
' End If
' End If
Dim CveComplementoPago As Integer = -1
' End If
If Banc.DtResultados.Rows.Count > 0 Then
'OBTENEMOS EL UUID DEL COMPLEMENTO A CANCELAR POR SUSTITUCION
CFDIRelacionadoSustitucion = Banc.DtResultados.Rows(0)("FolioFiscal")
CveComplementoPago = Banc.DtResultados(0)("CveComplementoPago").ToString().ToEntero
End If
' If Not ErrorCancelar Then
' If Banc.GetComplementoPagos(-1, CveIESustitucion, -1, UsuarioActual.CveEmpresa) Then
'ACTUALIZA FOLIOS CANCELADOS
If Banc.DtResultados.FiltraParametros("", DistinctColumns:={"CveComplementoPago", "SerieFolio", "Fecha", "CveIE"}).Rows.Count > 0 Then
If Not Banc.GetFoliosCancelados(UsuarioActual.CveEmpresa) Then
ErrorCancelar = True
Else
Dim FolioCancelado = $"{FolioIECancelado}_C_{Banc.DtResultados(0)("Cantidad").ToString().ToEntero + 1}"
' Dim CveComplementoPago As Integer = -1
If Not Banc.UpdateFolioCancelado(CveIESustitucion.ToEntero, Folio:=FolioCancelado) Then
ErrorCancelar = True
End If
End If
End If
' If Banc.DtResultados.Rows.Count > 0 Then
' 'OBTENEMOS EL UUID DEL COMPLEMENTO A CANCELAR POR SUSTITUCION
' CFDIRelacionadoSustitucion = Banc.DtResultados.Rows(0)("FolioFiscal")
' CveComplementoPago = Banc.DtResultados(0)("CveComplementoPago").ToString().ToEntero
' End If
'ACTUALIZA ESTATUS DE COMPLEMENTO DE PAGO A CANCELADO = 2
If Not ErrorCancelar And CveComplementoPago > 0 Then
If Not Banc.UpdateComplementoPagoCancelado(CveComplementoPago, 2, UsuarioActual.Empresa.CvePAC, UsuarioActual.CveEmpresa, DateTime.Now) Then
ErrorCancelar = True
End If
End If
End If
End If
Catch ex As Exception
ErrorCancelar = True
OnError("Ocurrió un error al cancelar el IE", ex)
End Try
' 'ACTUALIZA FOLIOS CANCELADOS
' If Banc.DtResultados.FiltraParametros("", DistinctColumns:={"CveComplementoPago", "SerieFolio", "Fecha", "CveIE"}).Rows.Count > 0 Then
' If Not Banc.GetFoliosCancelados(UsuarioActual.CveEmpresa) Then
' ErrorCancelar = True
' Else
' Dim FolioCancelado = $"{FolioIECancelado}_C_{Banc.DtResultados(0)("Cantidad").ToString().ToEntero + 1}"
If Not ErrorCancelar Then
Banc.Commit()
If ObjAC IsNot Nothing Then ObjAC.Commit()
' If Not Banc.UpdateFolioCancelado(CveIESustitucion.ToEntero, Folio:=FolioCancelado) Then
' ErrorCancelar = True
' End If
' End If
' End If
Dim Msg As New StringBuilder
Msg.Append("El movimiento bancario quedó cancelado exitosamente.")
' 'ACTUALIZA ESTATUS DE COMPLEMENTO DE PAGO A CANCELADO = 2
' If Not ErrorCancelar And CveComplementoPago > 0 Then
' If Not Banc.UpdateComplementoPagoCancelado(CveComplementoPago, 2, UsuarioActual.Empresa.CvePAC, UsuarioActual.CveEmpresa, DateTime.Now) Then
' ErrorCancelar = True
' End If
' End If
' End If
' End If
' Catch ex As Exception
' ErrorCancelar = True
' OnError("Ocurrió un error al cancelar el IE", ex)
' End Try
If IdPolizaNueva > 0 Then Msg.AppendFormat("<br/><br/><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza de cancelación</a>", IdPolizaNueva)
Alert(Msg.ToString, TipoMensaje.MsgInformacion)
Else
Banc.RollBack()
If ObjAC IsNot Nothing Then ObjAC.RollBack()
Alert("El movimiento bancario no se pudo cancelar. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
' If Not ErrorCancelar Then
' Banc.Commit()
' If ObjAC IsNot Nothing Then ObjAC.Commit()
If ObjAC IsNot Nothing Then ObjAC.Dispose()
Banc.Dispose()
Return ErrorCancelar
End Function
' Dim Msg As New StringBuilder
' Msg.Append("El movimiento bancario quedó cancelado exitosamente.")
' If IdPolizaNueva > 0 Then Msg.AppendFormat("<br/><br/><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza de cancelación</a>", IdPolizaNueva)
' Alert(Msg.ToString, TipoMensaje.MsgInformacion)
' Else
' Banc.RollBack()
' If ObjAC IsNot Nothing Then ObjAC.RollBack()
' Alert("El movimiento bancario no se pudo cancelar. Por favor vuelva a intentar.", TipoMensaje.MsgError)
' End If
' If ObjAC IsNot Nothing Then ObjAC.Dispose()
' Banc.Dispose()
' Return ErrorCancelar
'End Function
Private Sub BtnVincularIntermediario_Click(sender As Object, e As EventArgs) Handles BtnVincularIntermediario.Click
RegistraScript("$('#ModalVincularIntermediario').modal('hide')", "hidemodal")

View File

@@ -494,7 +494,7 @@
<tr align="left" id="TrServicioDomicilio" runat="server" visible="false">
<td><b>Servicio a Domicilio:</b>&nbsp;</td>
<td>
<asp:CheckBox ID="ChkServicioDomicilio" runat="server" CssClass="make-switchsd" data-size="small" Text="" ClientIDMode="Static" />
<asp:CheckBox ID="ChkServicioDomicilio" runat="server" AutoPostBack="true" OnCheckedChanged="ChkServicioDomicilio_CheckedChanged" />
</td>
</tr>
</table>
@@ -928,7 +928,7 @@
</div>
<div class=" col-sm-8">
<div class="Widthall" style="overflow-x: auto;">
<asp:GridView ID="GvInv" runat="server" AutoGenerateColumns="false" DataKeyNames="Origen,CvePS" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover" Style="text-align: center;" GridLines="None">
<asp:GridView ID="GvInv" runat="server" AutoGenerateColumns="false" DataKeyNames="Consec,Origen,CodigoPS,CvePS,Serie,AplicaSerie" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover" Style="text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField>
<ItemTemplate>
@@ -2769,11 +2769,6 @@
<a href="javascript;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<asp:UpdatePanel runat="server" ID="UPPDatosUsado" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet-body form">
<div class="row">
<div class="col-md-4">
@@ -2795,16 +2790,15 @@
<div class="col-md-4">
<label>Año:</label>
<br />
<asp:TextBox ID="TxtAnioVehiculo" type="number" runat="server" Height="100%" Width="100%" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVAnio" runat="server" ControlToValidate="TxtAnioVehiculo" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Año del vehiculo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddVenta"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAnio" runat="server" HighlightCssClass="vco" TargetControlID="RFVAnio" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:TextBox ID="TxtAnioVehiculo" type="number" runat="server" Height="100%" Width="100%" CssClass="form-control" ></asp:TextBox>
<asp:CustomValidator ID="CVAnio" runat="server" ClientValidationFunction="ValidaAnioVehiculo" ValidateEmptyText="true" ControlToValidate="TxtAnioVehiculo" Display="Dynamic" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Año''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddVenta"></asp:CustomValidator>
</div>
</div>
<div class="row">
<div class="col-md-6">
<label>Usado:</label>
<br />
<asp:DropDownList ID="DdlRecepcionUsados" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="CodigoPS" DataValueField="CvePSCargo" Width="100%" OnSelectedIndexChanged="DdlRecepcionUsados_SelectedIndexChanged" AutoPostBack="true">
<asp:DropDownList ID="DdlRecepcionUsados" CssClass="form-control input-sm select2me" runat="server" DataTextField="CodigoPS" DataValueField="CvePSCargo" Width="100%" OnSelectedIndexChanged="DdlRecepcionUsados_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</div>
<div class="col-md-6">
@@ -2820,6 +2814,7 @@
<asp:DropDownList ID="DdlMarcaUsado" CssClass="form-control input-sm select2me" runat="server" DataTextField="Marca" DataValueField="CveMarcaUsado" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione la Marca" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:CustomValidator ID="RFVMarcaUsado" runat="server" ClientValidationFunction="ValidaMarcaUsado" ControlToValidate="DdlMarcaUsado" Display="Dynamic" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Marca''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddVenta"></asp:CustomValidator>
<label for="<%= DdlMarcaUsado.ClientID.ToString()%>">Marca:</label>
</div>
</div>
@@ -2839,10 +2834,7 @@
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
@@ -3147,8 +3139,7 @@
<div class="modal-footer">
<asp:UpdatePanel ID="UpAgregar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%-- <asp:Button ID="BtnCalculaMesesUso" Text="" OnClick="BtnCalculaMesesUso_Click" ClientIDMode="Static" Style="display: none;" runat="server" />--%>
<asp:Button ClientIDMode="Static" ID="LnkAgregarPS" OnClick="LnkAgregarPS_Click" runat="server" CssClass="btn btn-primary" Text="Agregar" ValidationGroup="GrpAddVenta" UseSubmitBehavior="false" />
<asp:Button ID="LnkAgregarPS" OnClick="LnkAgregarPS_Click" runat="server" CssClass="btn btn-primary" Text="Agregar" ValidationGroup="GrpAddVenta" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
@@ -3188,6 +3179,26 @@
}
});
function ValidaMarcaUsado(val, args) {
//VALIDA SOLO SI SE SELECCIONO UN USADO
var cveUsado = ToDouble($get("C_DdlRecepcionUsados").value);
if (cveUsado > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
} else {
args.IsValid = true;
}
}
function ValidaAnioVehiculo(val, args) {
//VALIDA SOLO SI SE SELECCIONO UN USADO
var cveUsado = ToDouble($get("C_DdlRecepcionUsados").value);
if (cveUsado > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
} else {
args.IsValid = true;
}
}
function ValidarCodigoEnsamble(source, arguments) {
let CveMarca = HdnPSAjusteMarca.value;
let CveClasificacion = HdnPSAjusteClasificacion.value;

View File

@@ -3067,7 +3067,7 @@ Partial Class PV
If e.Row.RowType = DataControlRowType.DataRow Then
'SERIE ALMACEN
If e.Row.DBCampo("CveTipoInvPS").ToEntero = 5 Then
If e.Row.DBCampo("CveTipoInvPS").ToEntero = 5 OrElse CBool(e.Row.DBCampo("AplicaSerie")) Then
If CveVenta > 0 Then
e.Row.FCLiteral("LtlSerie").Visible = True
Else
@@ -3198,6 +3198,27 @@ Partial Class PV
Exit Sub
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ChkServicioDomicilio.Checked AndAlso ddlAlmacen.SelectedValue.ToEntero() <= 0 Then
Alert("Debe seleccionar un almacen de servicio a domicilio.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ChkServicioDomicilio.Checked AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) <= 0 Then
Alert("Debe tener producto seleccionados para servicio a domicilio.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ChkServicioDomicilio.Checked AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
For Each GvRow As GridViewRow In GvInv.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
If String.IsNullOrEmpty(GvRow.FCTextBox("TxtSerie").Text.Trim) AndAlso CBool(GvRow.DataKey("AplicaSerie")) Then
Alert(String.Format("El producto {0} requiere serie.", GvRow.DataKey("CodigoPS")), TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Next
End If
'VALIDA PRECIO AL AGREGAR A ALMACEN
If Not UsuarioActual.TienePermisoProceso(169) Then
If Not CveContrato > 0 Then
@@ -3463,255 +3484,274 @@ Partial Class PV
#Region "OBJETO VENTA"
Private Sub CreaObjetosVenta(Optional VistaPrevia As Boolean = False)
If Me.CveVenta > 0 Then
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
Else
ObjFactura = New Modelos.Factura(UsuarioActual)
ObjFactura.CvePrePoliza = -1
End If
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.TipoCambio = TxtTipoCambio.Text.Trim.ToDecimal
ObjFactura.TipoCambioDolares = TxtTipoCambioDlls.Text.Trim.ToDecimal
ObjFactura.ConvertirPesos = ChkConvertirDoctoPesos.Checked
ObjFactura.ConvertirDolares = ChkConvertirDolares.Checked
ObjFactura.CveMoneda = DdlMoneda.SelectedValue.ToEntero
ObjFactura.Moneda = DdlMoneda.SelectedItem.Text
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {DdlMoneda.SelectedValue}")
ObjFactura.TipoDocto = If(IfNull(ViewState("CveRemision"), 0).ToString.ToEntero > 0, "Ing", DdlTipoComprobante.SelectedValue)
'ObjFactura.RefDocto = TxtDocto.Text.Trim
ObjFactura.Folio = If(EstablecioFolio Or VistaPrevia Or (CveVenta > 0 And (NuevaFactura.Contiene(0, 2))), TxtFolio.Text.Trim.ToEntero, -1)
'ObjFactura.Folio = If(ExFolioFactura, FolioXML.ToEntero, -1)
ObjFactura.Serie = If(VistaPrevia, "VistaPrevia", LblSerie.Text)
ObjFactura.Fecha = New Date(TxtFecha.Text.Trim.ToDate.Year, TxtFecha.Text.Trim.ToDate.Month, TxtFecha.Text.Trim.ToDate.Day, Now.Hour, Now.Minute, Now.Second)
ObjFactura.CveMetodoPago = DdlMetodoPago.SelectedValue.ToEntero
ObjFactura.MetodoPago = DdlMetodoPago.SelectedItem.Text
ObjFactura.ClaveMetodoPagoSAT = GlobalDTMetodosPago.FiltroPrimeroValor("ClaveSAT", $"CveMetodoPago = {DdlMetodoPago.SelectedValue}")
ObjFactura.FechaVencimiento = TxtFechaPago.Text.ToDate
ObjFactura.CveMetodoPago33 = DdlMetodoPago33.SelectedValue.ToEntero
ObjFactura.MetodoPago33 = If(DdlMetodoPago33.SelectedValue.ToEntero > 0, DdlMetodoPago33.SelectedItem.Text, "")
ObjFactura.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {DdlMetodoPago33.SelectedValue}")
ObjFactura.CveFormaPago33 = DdlFormaPago33.SelectedValue.ToEntero
ObjFactura.FormaPago33 = If(DdlFormaPago33.SelectedValue.ToEntero > 0, DdlFormaPago33.SelectedItem.Text, "")
ObjFactura.FormaPagoSAT33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", $"CveFormaPago = {DdlFormaPago33.SelectedValue}")
ObjFactura.CveUsoCFDI = DdlUsoCFDI.SelectedValue.ToEntero
ObjFactura.UsoCFDI = If(DdlUsoCFDI.SelectedValue.ToEntero > 0, DdlUsoCFDI.SelectedItem.Text, "")
ObjFactura.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {DdlUsoCFDI.SelectedValue}")
ObjFactura.UsuarioCreo = LblUsuario.Text.Trim
ObjFactura.CveCondicionEntrega = If(DdlFormaEntrega.SelectedItem IsNot Nothing, DdlFormaEntrega.SelectedValue.ToEntero, -1)
ObjFactura.CondicionEntrega = If(DdlFormaEntrega.SelectedItem IsNot Nothing, DdlFormaEntrega.SelectedItem.Text, "")
ObjFactura.CondicionesPago = If(RBLPago.SelectedValue = "2", 0, If(RBLPago.SelectedValue = "1", 1, 2)) ' 0 - Contado, 1 - Credito, 2 - termianl
ObjFactura.FormaPago = DdlFormaPago.SelectedValue.ToEntero
Select Case ObjFactura.TipoDocto
Case "Ing"
ObjFactura.TipoDocumento = "Factura"
Case "Rem"
ObjFactura.TipoDocumento = "Remision"
Case "Cot"
ObjFactura.TipoDocumento = "Cotizacion"
Case "Egs"
ObjFactura.TipoDocumento = "Nota de Crédito"
Case "Dev"
ObjFactura.TipoDocumento = "Nota de Devolución"
Case Else
ObjFactura.TipoDocumento = ""
End Select
ObjFactura.Fech1 = Now
ObjFactura.Fech2 = Now
ObjFactura.Fech3 = Now
ObjFactura.Alfa1 = ""
ObjFactura.Alfa2 = ""
ObjFactura.Alfa3 = ""
ObjFactura.Num1 = 0
ObjFactura.Num2 = 0
ObjFactura.Num3 = DdlOrdenPago.SelectedValue.ToDouble
ObjFactura.FechaPago = TxtFechaPago.Text.ToDate
ObjFactura.CveCorte = CveCorte
ObjFactura.CveMesa = -1
ObjFactura.NumeroPersonas = 0
ObjFactura.CveContrato = If(CveContrato > 0, CveContrato, CvePresupuesto)
ObjFactura.CveClienteSucursal = DdlSucursalCliente.SelectedValue.ToEntero
ObjFactura.Entrega = Entrega
ObjFactura.Vigencia = Now
ObjFactura.CveVentaPadre = If(CveDevolucion > 0, CveDevolucion, CvePedido)
ObjFactura.CveVendedor = DdlVendedor.SelectedValue.ToEntero
If DdlVendedor.SelectedValue.ToEntero > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
DdlVendedor.Enabled = False
End If
ObjFactura.FechaEjecucion = Now
ObjFactura.CveSucursalEjecucion = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSucursalCobranza = -1
ObjFactura.CveSubProyecto = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSubProyectoEjecucion = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSubProyectoCobranza = -1
ObjFactura.AtencionA = If(ObjFactura.TipoDocto = "Cot", TxtAtencionA.Text, "-1")
ObjFactura.MotivoDescuento = TxtMotivoDescuento.Text.Trim
ObjFactura.Observaciones = TxtObsFact.Text.Trim
ObjFactura.Det_OrdenCompra = ""
ObjFactura.Det_FechaOrdenCompra = MinFecha.ToShortDateString
ObjFactura.MonedaAbreviatura = ""
'Totales, Y se llena TmpDTImpuestos
ObjFactura.SubTotal = TxtSubTotal.Text.ToDecimal
ObjFactura.Descuento = LblDescuentos.Text.Trim.ToDecimal
ObjFactura.Amortizacion = LblAmortizacion.Text.Trim.ToDecimal
ObjFactura.IVA = TxtIVA.Text.ToDecimal
ObjFactura.RetIVA = TxtRetIVA.Text.ToDecimal
ObjFactura.RetISR = TxtRetISR.Text.ToDecimal
ObjFactura.IEPS = TxtIEPS.Text.ToDecimal
ObjFactura.Total = TxtTotal.Text.ToDecimal
ObjFactura.DtDeduccion = New DataTable
'OTROS
ObjFactura.Det_FechaOrdenCompra = ""
ObjFactura.Det_OrdenCompra = ""
ObjFactura.CveNCaVincular = DdlNCFactura.SelectedValue.ToEntero
If ObjFactura.CveMoneda <> 1 AndAlso ChkConvertirDoctoPesos.Checked Then
ObjFactura.TipoCambio = TxtTipoCambio.Text.Trim.ToDecimal
ObjFactura.CveMoneda = 1
ObjFactura.Moneda = "Pesos"
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {ObjFactura.CveMoneda}")
End If
If ObjFactura.CveMoneda <> 2 AndAlso ChkConvertirDolares.Checked Then
ObjFactura.TipoCambio = TxtTipoCambioDlls.Text.Trim.ToDecimal
ObjFactura.CveMoneda = 2
ObjFactura.Moneda = "Dólares"
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {ObjFactura.CveMoneda}")
End If
'Se agrega CveVenta -1
For Each Row As DataRow In TmpDT.Rows
Row("CveVenta") = ObjFactura.CveVenta
Next
'DETALLES
ObjFactura.DtDetalle = TmpDT
ObjFactura.DtFirmas = DTmpF
'CLIENTE
ObjFactura.CveCliente = CveCliente
ObjFactura.SetCliente()
'SUCURSAL
ObjFactura.CveSucursal = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.SetSubProyectoMatriz(Me)
ObjFactura.SetSubProyecto(Me)
ObjFactura.ClienteSucursal = New Modelos.SucursalModel
ObjFactura.ClienteSucursal.NoExt = CliNoExt
ObjFactura.ClienteSucursal.NoInt = CliNoInt
ObjFactura.ClienteSucursal.Localidad = CliLocalidad
ObjFactura.ClienteSucursal.Direccion = LblDireccion.Text
ObjFactura.ClienteSucursal.Colonia = LblColonia.Text
ObjFactura.ClienteSucursal.Municipio = LblCiudad.Text
ObjFactura.ClienteSucursal.Estado = LblEstado.Text
ObjFactura.ClienteSucursal.CP = LblCP.Text
ObjFactura.ClienteSucursal.Pais = CliPais
ObjFactura.ClienteSucursal.CorreoSucursal = CliCorreoCot.ToString
ObjFactura.ClienteSucursal.TelefonoSucursal = LblTelefono.Text
ObjFactura.ClienteSucursal.Sucursal = DdlSucursalCliente.SelectedItem.Text
ObjFactura.DtDetalle = TmpDT
ObjFactura.DtPagos = DtPagos
ObjFactura.DtPromociones = DtPromociones
Dim FM As New Modelos.FemsaFactura
Dim TmpDT7Eleven As New DataTable
Dim TmpDTComplementosTimbrado As New DataTable
PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado)
ObjFactura.FemsaFactura = FM
ObjFactura.Timbre = PreParaTimbre(ObjFactura)
ObjFactura.DtAjustes = TmpDTAjustes
ObjFactura.DtRecepcionUsados = TmpDTRecepcionUsados
ObjFactura.DtPolizasVirtuales = TmpDTPolizaVirtual
ObjFactura.GenerarPDFFactura = False
Dim CveTipoAlmacen As Integer = If(TmpDTAjustes IsNot Nothing AndAlso TmpDTAjustes.Rows.Count > 0, 6, 22)
If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen = {CveTipoAlmacen} AND CveSubProyecto= {DdlSubProyectoDatos.SelectedValue}").Rows.Count > 0 Then
ObjFactura.CveAlmacenRecepcionUsados = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen = {CveTipoAlmacen} AND CveSubProyecto= {DdlSubProyectoDatos.SelectedValue}").Rows(0)("CveAlmacen").ToString.ToEntero
End If
'If Not ddlAlmacen.SelectedValue.ToEntero > 0 AndAlso ddlAlmacen.Items.Count > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
' ddlAlmacen.SelectedIndex = 1
'End If
If ddlAlmacen.SelectedValue.ToEntero > 0 Then
ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
If Not DtInv.Columns.Contains("Seleccionado") Then
DtInv.Columns.Add("Seleccionado", GetType(Integer))
Try
If Me.CveVenta > 0 Then
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
Else
ObjFactura = New Modelos.Factura(UsuarioActual)
ObjFactura.CvePrePoliza = -1
End If
For Each Gvr As GridViewRow In GvInv.Rows
Dim Dr As DataRow = DtInv.Select($"CvePS={Gvr.DataKey("CvePS")}")(0)
If Gvr.FCCheckBox("cbInv").Checked AndAlso ddlAlmacen.SelectedValue.ToEntero > 0 Then
Dr("Seleccionado") = 1
Else
Dr("Seleccionado") = 0
End If
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.TipoCambio = TxtTipoCambio.Text.Trim.ToDecimal
ObjFactura.TipoCambioDolares = TxtTipoCambioDlls.Text.Trim.ToDecimal
ObjFactura.ConvertirPesos = ChkConvertirDoctoPesos.Checked
ObjFactura.ConvertirDolares = ChkConvertirDolares.Checked
ObjFactura.CveMoneda = DdlMoneda.SelectedValue.ToEntero
ObjFactura.Moneda = DdlMoneda.SelectedItem.Text
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {DdlMoneda.SelectedValue}")
ObjFactura.TipoDocto = If(IfNull(ViewState("CveRemision"), 0).ToString.ToEntero > 0, "Ing", DdlTipoComprobante.SelectedValue)
'ObjFactura.RefDocto = TxtDocto.Text.Trim
ObjFactura.Folio = If(EstablecioFolio Or VistaPrevia Or (CveVenta > 0 And (NuevaFactura.Contiene(0, 2))), TxtFolio.Text.Trim.ToEntero, -1)
'ObjFactura.Folio = If(ExFolioFactura, FolioXML.ToEntero, -1)
ObjFactura.Serie = If(VistaPrevia, "VistaPrevia", LblSerie.Text)
ObjFactura.Fecha = New Date(TxtFecha.Text.Trim.ToDate.Year, TxtFecha.Text.Trim.ToDate.Month, TxtFecha.Text.Trim.ToDate.Day, Now.Hour, Now.Minute, Now.Second)
ObjFactura.CveMetodoPago = DdlMetodoPago.SelectedValue.ToEntero
ObjFactura.MetodoPago = DdlMetodoPago.SelectedItem.Text
ObjFactura.ClaveMetodoPagoSAT = GlobalDTMetodosPago.FiltroPrimeroValor("ClaveSAT", $"CveMetodoPago = {DdlMetodoPago.SelectedValue}")
ObjFactura.FechaVencimiento = TxtFechaPago.Text.ToDate
ObjFactura.CveMetodoPago33 = DdlMetodoPago33.SelectedValue.ToEntero
ObjFactura.MetodoPago33 = If(DdlMetodoPago33.SelectedValue.ToEntero > 0, DdlMetodoPago33.SelectedItem.Text, "")
ObjFactura.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {DdlMetodoPago33.SelectedValue}")
ObjFactura.CveFormaPago33 = DdlFormaPago33.SelectedValue.ToEntero
ObjFactura.FormaPago33 = If(DdlFormaPago33.SelectedValue.ToEntero > 0, DdlFormaPago33.SelectedItem.Text, "")
ObjFactura.FormaPagoSAT33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", $"CveFormaPago = {DdlFormaPago33.SelectedValue}")
ObjFactura.CveUsoCFDI = DdlUsoCFDI.SelectedValue.ToEntero
ObjFactura.UsoCFDI = If(DdlUsoCFDI.SelectedValue.ToEntero > 0, DdlUsoCFDI.SelectedItem.Text, "")
ObjFactura.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {DdlUsoCFDI.SelectedValue}")
ObjFactura.UsuarioCreo = LblUsuario.Text.Trim
ObjFactura.CveCondicionEntrega = If(DdlFormaEntrega.SelectedItem IsNot Nothing, DdlFormaEntrega.SelectedValue.ToEntero, -1)
ObjFactura.CondicionEntrega = If(DdlFormaEntrega.SelectedItem IsNot Nothing, DdlFormaEntrega.SelectedItem.Text, "")
ObjFactura.CondicionesPago = If(RBLPago.SelectedValue = "2", 0, If(RBLPago.SelectedValue = "1", 1, 2)) ' 0 - Contado, 1 - Credito, 2 - termianl
ObjFactura.FormaPago = DdlFormaPago.SelectedValue.ToEntero
Select Case ObjFactura.TipoDocto
Case "Ing"
ObjFactura.TipoDocumento = "Factura"
Case "Rem"
ObjFactura.TipoDocumento = "Remision"
Case "Cot"
ObjFactura.TipoDocumento = "Cotizacion"
Case "Egs"
ObjFactura.TipoDocumento = "Nota de Crédito"
Case "Dev"
ObjFactura.TipoDocumento = "Nota de Devolución"
Case Else
ObjFactura.TipoDocumento = ""
End Select
ObjFactura.Fech1 = Now
ObjFactura.Fech2 = Now
ObjFactura.Fech3 = Now
ObjFactura.Alfa1 = ""
ObjFactura.Alfa2 = ""
ObjFactura.Alfa3 = ""
ObjFactura.Num1 = 0
ObjFactura.Num2 = 0
ObjFactura.Num3 = DdlOrdenPago.SelectedValue.ToDouble
ObjFactura.FechaPago = TxtFechaPago.Text.ToDate
ObjFactura.CveCorte = CveCorte
ObjFactura.CveMesa = -1
ObjFactura.NumeroPersonas = 0
ObjFactura.CveContrato = If(CveContrato > 0, CveContrato, CvePresupuesto)
ObjFactura.CveClienteSucursal = DdlSucursalCliente.SelectedValue.ToEntero
ObjFactura.Entrega = Entrega
ObjFactura.Vigencia = Now
ObjFactura.CveVentaPadre = If(CveDevolucion > 0, CveDevolucion, CvePedido)
ObjFactura.CveVendedor = DdlVendedor.SelectedValue.ToEntero
If DdlVendedor.SelectedValue.ToEntero > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
DdlVendedor.Enabled = False
End If
ObjFactura.FechaEjecucion = Now
ObjFactura.CveSucursalEjecucion = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSucursalCobranza = -1
ObjFactura.CveSubProyecto = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSubProyectoEjecucion = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.CveSubProyectoCobranza = -1
ObjFactura.AtencionA = If(ObjFactura.TipoDocto = "Cot", TxtAtencionA.Text, "-1")
ObjFactura.MotivoDescuento = TxtMotivoDescuento.Text.Trim
ObjFactura.Observaciones = TxtObsFact.Text.Trim
ObjFactura.Det_OrdenCompra = ""
ObjFactura.Det_FechaOrdenCompra = MinFecha.ToShortDateString
ObjFactura.MonedaAbreviatura = ""
'Totales, Y se llena TmpDTImpuestos
ObjFactura.SubTotal = TxtSubTotal.Text.ToDecimal
ObjFactura.Descuento = LblDescuentos.Text.Trim.ToDecimal
ObjFactura.Amortizacion = LblAmortizacion.Text.Trim.ToDecimal
ObjFactura.IVA = TxtIVA.Text.ToDecimal
ObjFactura.RetIVA = TxtRetIVA.Text.ToDecimal
ObjFactura.RetISR = TxtRetISR.Text.ToDecimal
ObjFactura.IEPS = TxtIEPS.Text.ToDecimal
ObjFactura.Total = TxtTotal.Text.ToDecimal
ObjFactura.DtDeduccion = New DataTable
'OTROS
ObjFactura.Det_FechaOrdenCompra = ""
ObjFactura.Det_OrdenCompra = ""
ObjFactura.CveNCaVincular = DdlNCFactura.SelectedValue.ToEntero
If ObjFactura.CveMoneda <> 1 AndAlso ChkConvertirDoctoPesos.Checked Then
ObjFactura.TipoCambio = TxtTipoCambio.Text.Trim.ToDecimal
ObjFactura.CveMoneda = 1
ObjFactura.Moneda = "Pesos"
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {ObjFactura.CveMoneda}")
End If
If ObjFactura.CveMoneda <> 2 AndAlso ChkConvertirDolares.Checked Then
ObjFactura.TipoCambio = TxtTipoCambioDlls.Text.Trim.ToDecimal
ObjFactura.CveMoneda = 2
ObjFactura.Moneda = "Dólares"
ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {ObjFactura.CveMoneda}")
End If
'Se agrega CveVenta -1
For Each Row As DataRow In TmpDT.Rows
Row("CveVenta") = ObjFactura.CveVenta
Next
DtInv.AcceptChanges()
ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End If
'DETALLES
ObjFactura.DtDetalle = TmpDT
ObjFactura.DtFirmas = DTmpF
ObjFactura.ServicioDomicilio = ChkServicioDomicilio.Checked
'CLIENTE
ObjFactura.CveCliente = CveCliente
ObjFactura.SetCliente()
'VALIDA ENTREGA POR ADELANTADO
If UsuarioActual.Empresa.Funcionalidad(145) = "1" Then
'INCRUSTAMOS ALMACEN ENTREGA POR ADELANTADO CUANDO SEA REMISION Y NO TRAIGA ASIGNADO POR EL USUARIO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
If ObjFactura.ServicioDomicilio Then
ObjFactura.CveAlmacenServicioDomicilio = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 29 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString.ToEntero
ObjFactura.DtInventario = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
'SUCURSAL
ObjFactura.CveSucursal = DdlSubProyectoDatos.SelectedValue.ToEntero
ObjFactura.SetSubProyectoMatriz(Me)
ObjFactura.SetSubProyecto(Me)
ObjFactura.ClienteSucursal = New Modelos.SucursalModel
ObjFactura.ClienteSucursal.NoExt = CliNoExt
ObjFactura.ClienteSucursal.NoInt = CliNoInt
ObjFactura.ClienteSucursal.Localidad = CliLocalidad
ObjFactura.ClienteSucursal.Direccion = LblDireccion.Text
ObjFactura.ClienteSucursal.Colonia = LblColonia.Text
ObjFactura.ClienteSucursal.Municipio = LblCiudad.Text
ObjFactura.ClienteSucursal.Estado = LblEstado.Text
ObjFactura.ClienteSucursal.CP = LblCP.Text
ObjFactura.ClienteSucursal.Pais = CliPais
ObjFactura.ClienteSucursal.CorreoSucursal = CliCorreoCot.ToString
ObjFactura.ClienteSucursal.TelefonoSucursal = LblTelefono.Text
ObjFactura.ClienteSucursal.Sucursal = DdlSucursalCliente.SelectedItem.Text
ObjFactura.DtDetalle = TmpDT
ObjFactura.DtPagos = DtPagos
ObjFactura.DtPromociones = DtPromociones
Dim FM As New Modelos.FemsaFactura
Dim TmpDT7Eleven As New DataTable
Dim TmpDTComplementosTimbrado As New DataTable
PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado)
ObjFactura.FemsaFactura = FM
ObjFactura.Timbre = PreParaTimbre(ObjFactura)
ObjFactura.DtAjustes = TmpDTAjustes
ObjFactura.DtRecepcionUsados = TmpDTRecepcionUsados
ObjFactura.DtPolizasVirtuales = TmpDTPolizaVirtual
ObjFactura.GenerarPDFFactura = False
Dim CveTipoAlmacen As Integer = If(TmpDTAjustes IsNot Nothing AndAlso TmpDTAjustes.Rows.Count > 0, 6, 22)
If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen = {CveTipoAlmacen} AND CveSubProyecto= {DdlSubProyectoDatos.SelectedValue}").Rows.Count > 0 Then
ObjFactura.CveAlmacenRecepcionUsados = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen = {CveTipoAlmacen} AND CveSubProyecto= {DdlSubProyectoDatos.SelectedValue}").Rows(0)("CveAlmacen").ToString.ToEntero
End If
'If Not ddlAlmacen.SelectedValue.ToEntero > 0 AndAlso ddlAlmacen.Items.Count > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
' ddlAlmacen.SelectedIndex = 1
'End If
If ddlAlmacen.SelectedValue.ToEntero > 0 Then
ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
If Not DtInv.Columns.Contains("Seleccionado") Then
DtInv.Columns.Add("Seleccionado", GetType(Integer))
End If
ObjFactura.CveAlmacenTraspasoDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 10 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString.ToEntero
For Each Gvr As GridViewRow In GvInv.Rows
Dim Dr As DataRow = DtInv.Select($"CvePS={Gvr.DataKey("CvePS")}")(0)
If Gvr.FCCheckBox("cbInv").Checked AndAlso ddlAlmacen.SelectedValue.ToEntero > 0 Then
Dr("Seleccionado") = 1
Else
Dr("Seleccionado") = 0
End If
Next
DtInv.AcceptChanges()
ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End If
'SI LA SUCURSAL NO TIENE ENTREGA POR ADELANTADO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
ObjFactura.ErrorList.Add("Ocurrió un error al seleccionar el almacen de entrega por adelantado de la sucursal.")
ObjFactura.ServicioDomicilio = ChkServicioDomicilio.Checked
'VALIDA ENTREGA POR ADELANTADO
If UsuarioActual.Empresa.Funcionalidad(145) = "1" Then
'INCRUSTAMOS ALMACEN ENTREGA POR ADELANTADO CUANDO SEA REMISION Y NO TRAIGA ASIGNADO POR EL USUARIO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
If ObjFactura.ServicioDomicilio Then
ObjFactura.CveAlmacenServicioDomicilio = ddlAlmacen.SelectedValue.ToEntero() 'GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 29 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString.ToEntero
'PREPARA DT INVENTARIO
Dim DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
For Each GvRow As GridViewRow In GvInv.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
Dim filtro = DtInv.Select(String.Format("CvePS = {0} AND Consec = {1}", GvRow.DataKey("CvePS"), GvRow.DataKey("Consec")))
If filtro IsNot Nothing AndAlso filtro.Length > 0 Then
Dim Row = filtro(0)
Row("Serie") = GvRow.FCTextBox("TxtSerie").Text.Trim
End If
End If
Next
ObjFactura.DtInventario = DtInv
End If
ObjFactura.CveAlmacenTraspasoDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 10 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString.ToEntero
End If
'SI LA SUCURSAL NO TIENE ENTREGA POR ADELANTADO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
ObjFactura.ErrorList.Add("Ocurrió un error al seleccionar el almacen de entrega por adelantado de la sucursal.")
End If
'SI LA SUCURSAL NO TIENE SERVICIO A DOMICILIO
If ObjFactura.ServicioDomicilio AndAlso ObjFactura.CveAlmacenServicioDomicilio <= 0 And ObjFactura.TipoDocto = "Rem" Then
ObjFactura.ErrorList.Add("No existe un almacen configurado como 'Servicio a Domicilio' en esta sucursal.")
End If
End If
'SI LA SUCURSAL NO TIENE SERVICIO A DOMICILIO
If ObjFactura.ServicioDomicilio AndAlso ObjFactura.CveAlmacenServicioDomicilio <= 0 And ObjFactura.TipoDocto = "Rem" Then
ObjFactura.ErrorList.Add("No existe un almacen configurado como 'Servicio a Domicilio' en esta sucursal.")
Catch ex As Exception
OnError("Ocurrió un error al generar la venta", ex)
If ObjFactura IsNot Nothing Then
ObjFactura.Dispose()
ObjFactura = Nothing
End If
End If
End Try
End Sub
#End Region
@@ -4133,6 +4173,8 @@ Partial Class PV
CambiaSucursal()
End If
ObjSubProyectos.Dispose()
ChkServicioDomicilio_CheckedChanged(ChkServicioDomicilio, EventArgs.Empty)
End Sub
Protected Sub DdlTipoComprobante_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlTipoComprobante.SelectedIndexChanged
CambiaTipoComprobante()
@@ -4310,6 +4352,8 @@ Partial Class PV
TmpDT.Columns.Add("EliminarDB", GetType(Boolean))
TmpDT.Columns("EliminarDB").DefaultValue = False
TmpDT.Columns.Add("AplicaSerie", GetType(Boolean))
End Sub
Private Sub CreaDTmpC()
@@ -4346,6 +4390,8 @@ Partial Class PV
Exit Sub
End If
Dim AplicaSerie = CBool(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("AplicaSerie"))
If TmpDT.FiltraParametros("AsientoContableVentas <> '" & AsientoContableVentas.ToString & "'").Rows.Count = 0 Then
Dim Row As DataRow = Nothing
Row = TmpDT.NewRow()
@@ -4380,6 +4426,7 @@ Partial Class PV
Row("SubProyecto") = SubProyecto
Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega
Row("AplicaSerie") = AplicaSerie
TmpDT.Rows.Add(Row)
GvPS.DataSource = TmpDT.FiltraParametros("EliminarDB = False")
@@ -4596,6 +4643,7 @@ Partial Class PV
End If
End If
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
If Modalidad = "A" Then
@@ -4671,6 +4719,7 @@ Partial Class PV
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsCargo") = EsCargo
Row("AplicaSerie") = DrPS("AplicaSerie")
If EsCargo AndAlso ConsecPSPadre >= 0 Then
Row("ConsecPSPadre") = ConsecPSPadre
@@ -5036,6 +5085,8 @@ Partial Class PV
End If
End If
Me.CveVentaDetalle = -1
UpAgregar.Update()
End Sub
Private Function AgregarPS() As Boolean
Dim CveVentaDetalle As Integer = Me.CveVentaDetalle
@@ -5278,6 +5329,8 @@ Partial Class PV
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
CargaGVInv(DtInv)
ChkServicioDomicilio_CheckedChanged(ChkServicioDomicilio, EventArgs.Empty)
UpContado.Update()
UpPS.Update()
RegistraScript("BorraDescuentos();", "BorraDescuentos")
@@ -5864,24 +5917,23 @@ Partial Class PV
Dim Index = Row.RowIndex
Dim ObjInventarios As New ClsInventarios
Dim Existencia = ObjInventarios.GetExistenciasPSSerie("", ddlAlmacen.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
Dim ExistenciaActual = DtInv.SUM("Cantidad", String.Format("Serie = '{0}'", Row.FCTextBox("TxtSerie").Text.ToString))
Dim Existencia = ObjInventarios.GetExistenciasPSSerie(Row.FCTextBox("TxtSerie").Text.ToString.Trim, ddlAlmacen.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
ObjInventarios.Dispose()
'Valida Existencia
If Existencia - ExistenciaActual <= 0 Then
If Existencia <= 0 Then
Alert(String.Format("Not hay existencia suficiente del producto con la Serie: <b>{0}</b>. Por favor rectifique y vuelva a intentar", Row.FCTextBox("TxtSerie").Text.ToString), TipoMensaje.MsgAdvertencia)
Row.FCTextBox("TxtSerie").Text = ""
Row.FCHiddenField("HdnSerie").Value = ""
TmpDT.Rows(Index)("Serie") = ""
DtInv.Rows(Index)("Serie") = ""
Else
Row.FCHiddenField("HdnSerie").Value = Row.FCTextBox("TxtSerie").Text
TmpDT.Rows(Index)("Serie") = Row.FCTextBox("TxtSerie").Text
DtInv.Rows(Index)("Serie") = Row.FCTextBox("TxtSerie").Text
End If
TmpDT.AcceptChanges()
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
DtInv.AcceptChanges()
ObjInventarios.Dispose()
End Sub
Private Function ValidaSerieINV() As Boolean
@@ -7813,11 +7865,49 @@ Partial Class PV
Response.Redirect($"~/Ventas/PV.aspx")
End Sub
Protected Sub DdlRecepcionUsados_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim DrTamanio As DataRow = GlobalDTAcumTamaños.FiltroPrimero($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo = {DdlRecepcionUsados.SelectedValue}")
DdlBCIUsado.DataSource = DTBCIUsados.FiltraParametros(String.Format("CveTamaño = {0}", DrTamanio("CveTamaño")))
If DdlRecepcionUsados.SelectedValue.ToEntero() > 0 Then
Dim DrTamanio As DataRow = GlobalDTAcumTamaños.FiltroPrimero($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo = {DdlRecepcionUsados.SelectedValue}")
DdlBCIUsado.DataSource = DTBCIUsados.FiltraParametros(String.Format("CveTamaño = {0}", DrTamanio("CveTamaño")))
Else
DdlBCIUsado.Items.Clear()
DdlBCIUsado.DataSource = Nothing
End If
DdlBCIUsado.DataBind()
UpModalVenta.Update()
UpAddVenta.Update()
End Sub
Protected Sub ChkServicioDomicilio_CheckedChanged(sender As Object, e As EventArgs)
If ChkServicioDomicilio.Checked Then
PreparaServicioDomicilio()
Else
ddlAlmacen.Items.Clear()
ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero}")
ddlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
ddlAlmacen.DataBind()
If GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue.ToEntero}").Rows.Count > 0 Then
ddlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
End If
For Each GvRow As GridViewRow In GvInv.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
GvRow.FCCheckBox("cbInv").Enabled = True
End If
Next
End If
UpINV.Update()
End Sub
Private Sub PreparaServicioDomicilio()
ddlAlmacen.Items.Clear()
ddlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=29).FiltraParametros($"CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}")
ddlAlmacen.DataBind()
For Each GvRow As GridViewRow In GvInv.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
GvRow.FCCheckBox("cbInv").Checked = True
GvRow.FCCheckBox("cbInv").Enabled = False
End If
Next
End Sub
End Class

View File

@@ -2178,6 +2178,40 @@
<asp:Literal ID="LtlScripts" runat="server"></asp:Literal>
<%-- FIN MODAL PS ADICIONALES --%>
<asp:UpdatePanel runat="server" ID="UPModalMensaje" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivModalMensaje" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header-warning">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblModalMensaje" runat="server" ClientIDMode="Static" Text="Atención"></asp:Label></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<asp:Label ID="LblModalMensajeCuerpo" runat="server" ClientIDMode="Static" Text="Atención"></asp:Label>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnmodalMensajeOK" runat="server" Text="Guardar" CssClass="btn btn-sm blue" OnClick="BtnmodalMensajeOK_Click" />
<asp:Button ID="BtnCerrarModalMensace" runat="server" Text="Corregir" CssClass="btn btn-sm green" data-dismiss="modal" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">

View File

@@ -148,6 +148,29 @@ Partial Class ProductosyServicios
End Property
#End Region
#Region "Material peligroso"
Property ValidaMaterialPeligrosoMensaje As Boolean
Get
If ViewState("ValidaMaterialPeligroso") Is Nothing Then
ViewState("ValidaMaterialPeligroso") = False
End If
Return Boolean.Parse(ViewState("ValidaMaterialPeligroso").ToString)
End Get
Set(value As Boolean)
ViewState("ValidaMaterialPeligroso") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
@@ -1213,6 +1236,15 @@ Partial Class ProductosyServicios
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click
If DdlSATPS.txtValue.Value.ToEntero > 0 Then
If Not ValidaMaterialPeligrosoMensaje Then
ValidaMaterialPeligroso(DdlSATPS.txtValue.Value.ToEntero)
Exit Sub
End If
End If
If DdlSATPS.SelectedValue.Contiene("46920", "0", "-1") AndAlso UsuarioActual.CveEmpresa.Contiene(119, 158, 72, 80, 145) Then
Alert("El Producto Servicio SAT con clave '01010101' no es valido, por favor seleccione otro", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -3045,4 +3077,76 @@ Partial Class ProductosyServicios
End If
Return False
End Function
Sub ValidaMaterialPeligroso(CveSATPS As Integer)
Dim EsPeligroso As Boolean = False
Dim ObjGrales As New ClsGenerales
If ObjGrales.GetSATProductosServicios(CveSATPS:=CveSATPS) Then
Dim DTDatos As New DataTable
DTDatos = ObjGrales.DtResultados.FiltraParametros($" CveSATPS= {CveSATPS}")
'Es material Peligros
If DTDatos.Rows(0)("EsPeligroso").ToString.ToEntero = 1 Then
If DdlMaterialPeligroso.txtValue.Value.ToEntero > 0 And DdlEmbalaje.txtValue.Value.ToEntero > 0 And TxtPesoKg.Text.Trim.Length > 0 Then
ValidaMaterialPeligrosoMensaje = True
Else
RegistraScript("$('#DivModalMensaje').modal('show');")
ValidaMaterialPeligrosoMensaje = False
LblModalMensajeCuerpo.Text = "El producto servicio del SAT seleccionado esta clasificado como material peligroso, favor de llenar los datos de la sección carta porte en la pestaña Contabilidad - Inventarios."
UPModalMensaje.Update()
End If
Else
'No es matgerial peligroso
If DdlMaterialPeligroso.txtValue.Value.ToEntero > 0 Or DdlEmbalaje.txtValue.Value.ToEntero > 0 Or TxtPesoKg.Text.Trim.Length > 0 Then
RegistraScript("$('#DivModalMensaje').modal('show');")
ValidaMaterialPeligrosoMensaje = False
LblModalMensajeCuerpo.Text = "El producto servicio del SAT seleccionado no esta clasificado como material peligroso, favor de limpiar los datos de la sección carta porte en la pestaña Contabilidad - Inventarios, el incluir estos datos en un material no peligroso generara errores al timbrar traslados."
UPModalMensaje.Update()
Else
ValidaMaterialPeligrosoMensaje = True
End If
End If
End If
ObjGrales.Dispose()
'Return Respuesta
End Sub
Protected Sub BtnmodalMensajeOK_Click(sender As Object, e As EventArgs)
ValidaMaterialPeligrosoMensaje = True
RegistraScript("$('#DivPersonalizar').modal('hide');")
BtnGuardar_Click(Nothing, Nothing)
End Sub
End Class

View File

@@ -3341,7 +3341,7 @@
</div>
<div class="col-md-6">
<asp:DropDownList ID="DdlCuentaEfectivo" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVCuenta" runat="server" ControlToValidate="DdlCuentaEfectivo" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="RFVCuenta" runat="server" ClientValidationFunction="ValidaCuentaEfectivo" ControlToValidate="DdlCuentaEfectivo" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCOCuenta" runat="server" HighlightCssClass="vco" TargetControlID="RFVCuenta" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
@@ -3349,7 +3349,7 @@
<div class="chequesie1">
<div class="row">
<label class="col-md-2">Credito:</label>
<label class="col-md-2">Crédito:</label>
<div class="col-md-4 input-icon">
<i style="margin: 0px;">$</i>
<asp:TextBox ID="TxtImporteCredito" CssClass="form-control input-sm " runat="server" MaxLength="12" Width="100px" ClientIDMode="Static" Style="text-align: right;"></asp:TextBox>
@@ -3357,7 +3357,7 @@
</div>
<div class="col-md-6" runat="server" id="DivDdlCuentaTarjetaCredito" style="margin-right: -40px">
<asp:DropDownList ID="DdlCuentaTarjetaCredito" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DdlCuentaTarjetaCredito" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="RequiredFieldValidator1" runat="server" ClientValidationFunction="ValidaCuentaCredito" ControlToValidate="DdlCuentaTarjetaCredito" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender5" runat="server" HighlightCssClass="vco" TargetControlID="RequiredFieldValidator1" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-3" runat="server" id="DivMesesSinIntereses" visible="false" style="text-align: right;">
@@ -3377,7 +3377,7 @@
<div class="chequesie1">
<div class="row">
<label class="col-md-2">Debito:</label>
<label class="col-md-2">Débito:</label>
<div class="col-md-4 input-icon">
<i style="margin: 0px;">$</i>
<asp:TextBox ID="TxtImporteDebito" CssClass="form-control input-sm " runat="server" MaxLength="12" Width="100px" ClientIDMode="Static" Style="text-align: right;"></asp:TextBox>
@@ -3385,7 +3385,7 @@
</div>
<div class="col-md-6">
<asp:DropDownList ID="DdlCuentaTarjetaDebito" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="DdlCuentaTarjetaDebito" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="RequiredFieldValidator4" runat="server" ClientValidationFunction="ValidaCuentaDebito" ControlToValidate="DdlCuentaTarjetaDebito" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender9" runat="server" HighlightCssClass="vco" TargetControlID="RequiredFieldValidator4" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
@@ -3400,7 +3400,7 @@
</div>
<div class="col-md-6">
<asp:DropDownList ID="DdlCuentaCheque" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="DdlCuentaCheque" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="RequiredFieldValidator3" runat="server" ClientValidationFunction="ValidaCuentaCheque" ControlToValidate="DdlCuentaCheque" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender11" runat="server" HighlightCssClass="vco" TargetControlID="RequiredFieldValidator3" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
@@ -3416,7 +3416,7 @@
</div>
<div class="col-md-6">
<asp:DropDownList ID="DdlCuentaTransferencia" runat="server" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVTransferencia" runat="server" ControlToValidate="DdlCuentaTransferencia" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="RFVTransferencia" runat="server" ClientValidationFunction="ValidaCuentaTransferencia" ControlToValidate="DdlCuentaTransferencia" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpAgregarPago"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCETransferencia" runat="server" HighlightCssClass="vco" TargetControlID="RFVTransferencia" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
@@ -3480,6 +3480,8 @@
</div>
<div class="row">
<div class="col-md-6">
<asp:HiddenField ID="HdnCambioFaltante" runat="server" Value="1" ClientIDMode="Static" />
<%--<asp:HiddenField ID="HdnPagadoContado" runat="server" Value="0" ClientIDMode="Static" />--%>
</div>
<label id="lblCambio" class="col-md-2">Cambio:</label>
<div class="col-md-4 input-icon">
@@ -7749,6 +7751,7 @@
<asp:ListItem Value="1" Text="Importe"></asp:ListItem>
<asp:ListItem Value="2" Text="Vencimiento"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVTipoAut" runat="server" CssClass="help-block errorimput" InitialValue="-1" ControlToValidate="DdlTipoAutorizacion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo''</b> es necesario, por favor ingréselo." ValidationGroup="VgmGuardarAut"></asp:RequiredFieldValidator>
<label for="<%= DdlTipoAutorizacion.ClientID.ToString()%>">Tipo Autorización:</label>
</div>
<div id="DivDiasVencidos" runat="server" visible="false" class="row">
@@ -7836,6 +7839,61 @@
$("#BtnDirClienteValidar").click();
}
function ValidaCuentaEfectivo(val, args) {
//VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
var totalPago = ToDouble($get("TxtImporteEfectivo").value);
if (totalPago > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
}else
{
args.IsValid = true;
}
}
function ValidaCuentaCredito(val, args) {
//VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
var totalPago = ToDouble($get("TxtImporteCredito").value);
if (totalPago > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
}else
{
args.IsValid = true;
}
}
function ValidaCuentaDebito(val, args) {
//VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
var totalPago = ToDouble($get("TxtImporteDebito").value);
if (totalPago > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
}else
{
args.IsValid = true;
}
}
function ValidaCuentaCheque(val, args) {
//VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
var totalPago = ToDouble($get("TxtImporteCheque").value);
if (totalPago > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
}else
{
args.IsValid = true;
}
}
function ValidaCuentaTransferencia(val, args) {
//VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
var totalPago = ToDouble($get("TxtImporteTransferencia").value);
if (totalPago > 0) {
args.IsValid = (ToDouble(args.Value) > 0);
}else
{
args.IsValid = true;
}
}
//FUNCIONES PARA COMERCIO EXTERIOR
function CalculaTotalUSD(TotalUSD, ValorUnitario, TxtCantidad) {
TotalUSD.innerText = FormatoNumero(ToDouble(ValorUnitario.value) * ToDouble(TxtCantidad.value), 2);
@@ -8868,14 +8926,16 @@
} catch (e) { }
var total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia + TotalOtrosContado + totalRNC + totalAmortizado + totalProntoPago;
var totalVenta = ToDouble($get('TxtTotal').value);
var totalVenta = ToDouble($get('TxtTotal').value);// - ToDouble($get('HdnPagadoContado').value);
if (total > totalVenta) {
lblCambio.innerHTML = "Cambio:"
lblCambio.innerHTML = "Cambio:";
HdnCambioFaltante.value = "1";
$get("TxtCambio").value = FormatoNumero(total - totalVenta);
} else {
if ('<%= UsuarioActual.Empresa.Funcionalidad(531) %>' == '1') {
lblCambio.innerHTML = "Faltante:"
lblCambio.innerHTML = "Faltante:";
HdnCambioFaltante.value = "2";
$get("TxtCambio").value = FormatoNumero(total - totalVenta, 2);
} else {
$get("TxtCambio").value = "$0.00"

View File

@@ -1869,6 +1869,24 @@ Partial Class Ventas
ViewState("CveEstatusCotizacion") = value
End Set
End Property
Private Property CveMetodoPago33Venta As Integer
Get
Return (IfNull(ViewState("CveMetodoPago33Venta"), "-1", ViewState("CveMetodoPago33Venta"))).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveMetodoPago33Venta") = value
End Set
End Property
Private Property CveFormaPago33Venta As Integer
Get
Return (IfNull(ViewState("CveFormaPago33Venta"), "-1", ViewState("CveFormaPago33Venta"))).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveFormaPago33Venta") = value
End Set
End Property
Private Property DiasCredito As Integer
Get
Return ViewState("DiasCredito").ToString().ToEntero()
@@ -4551,6 +4569,9 @@ Partial Class Ventas
DdlMetodoPago33.SelectedValueExist(DbRowVenta("CveMetodoPago33").ToString())
DdlFormaPago33.SelectedValueExist(DbRowVenta("CveFormaPago33").ToString().ToEntero())
Me.CveMetodoPago33Venta = DbRowVenta("CveMetodoPago33").ToString().ToEntero()
Me.CveFormaPago33Venta = DbRowVenta("CveFormaPago33").ToString().ToEntero()
If DdlFormaPago33.SelectedValue <> DbRowVenta("CveFormaPago33").ToString() And DbRowVenta("CveFormaPago33").ToString() <> "" Then
'sino está seleccionada la asginada la debe de cargar
Dim Nombre As String = GlobalDTVtaFormaPago().FiltroPrimeroValor("FormaPagoSAT", String.Format("CveFormaPago={0}", DbRowVenta("CveFormaPago33")))
@@ -6382,8 +6403,10 @@ Partial Class Ventas
If Not EsCreaApartirDe AndAlso (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then
DdlTipoComprobante.SelectedValueExist("Cot")
Else
DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización")
DdlTipoComprobante.SelectedValue = "PA"
If UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización")
DdlTipoComprobante.SelectedValue = "PA"
End If
End If
TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString
@@ -6391,14 +6414,17 @@ Partial Class Ventas
If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValue = "Cot"
'quito remisión y factura
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
If Not UsuarioActual.TienePermisoProceso(325) Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant"))
If UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
If Not UsuarioActual.TienePermisoProceso(325) Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant"))
End If
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
End If
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
'SI ES AUTORIZACION DEBE PERMITIR GENERARLA
If (Not DdlTipoComprobante.SelectedValue.Contiene("PA")) Then
If (Not DdlTipoComprobante.SelectedValue.Contiene("PA")) AndAlso UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
BtnEmitirImprimir.Visible = False
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
@@ -6434,7 +6460,7 @@ Partial Class Ventas
'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO
Select Case ValorAutorizacion
Case "1" 'CREAR DOCUMENTO DE AUTORIZACION PA
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) Then
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) AndAlso UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS
Dim Vta As New ClsVentas
@@ -7830,8 +7856,91 @@ Partial Class Ventas
ObjContrato.Dispose()
End If
Me.CveAutorizacion = -1
'SI ES A CREDITO DEBE VERIFICAR SI TIENE AUTORIZACIONES
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs") AndAlso RBLPago.SelectedValue = "1" Then
Dim TipoDocumentoAutorizacion As String = ""
Dim ImporteAutorizacion As Decimal = 0
Dim TipoAutorizacion As Integer = 0
Dim DiasVencidosAutorizacion As Integer = 0
Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
Dim ObjVentas As New ClsVentas
Try
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = Nothing
'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
If TieneDiasVencidos Then
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion IN(1,2) AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
Else
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
End If
If RowAutorizacion IsNot Nothing Then
TipoDocumentoAutorizacion = RowAutorizacion("CveTipoDocumento").ToString()
ImporteAutorizacion = RowAutorizacion("Importe").ToString().ToDecimal()
CveAutorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
TipoAutorizacion = RowAutorizacion("TipoAutorizacion").ToString().ToEntero()
DiasVencidosAutorizacion = RowAutorizacion("DiasVencidos").ToString().ToEntero()
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al obtener las autorizaciones", ex)
End Try
ObjVentas.Dispose()
If TipoDocumentoAutorizacion = "Ing" Then
If TipoAutorizacion = 1 Then
If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
CveAutorizacion = -1
Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TieneDiasVencidos Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
'If TipoAutorizacion = 2 Then
' If DiasVencidosCliente > DiasVencidosAutorizacion Then
' CveAutorizacion = -1
' Alert($"El crédito no esta autorizado. Los días vencidos del cliente son mayores a lo autorizado", TipoMensaje.MsgAdvertencia)
' Exit Sub
' End If
'End If
'SI NO SE ENCONTRO NINGUA AUTORIZACION
If TipoAutorizacion = 0 Then
If TieneDiasVencidos Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If
If TieneDiasVencidos AndAlso DdlTipoComprobante.SelectedValue = "Egs" AndAlso CveAutorizacion <= 0 Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. No tiene autorización para generar notas de crédito. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TipoDocumentoAutorizacion = "Egs" Then
If TipoAutorizacion = 1 Then
If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
CveAutorizacion = -1
Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If
End If
'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada.
If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then
If Me.CveAutorizacion <= 0 AndAlso (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then
'If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
@@ -8085,90 +8194,6 @@ Partial Class Ventas
Exit Sub
End If
Me.CveAutorizacion = -1
'SI ES A CREDITO DEBE VERIFICAR SI TIENE AUTORIZACIONES
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs") AndAlso RBLPago.SelectedValue = "1" Then
Dim TipoDocumentoAutorizacion As String = ""
Dim ImporteAutorizacion As Decimal = 0
Dim TipoAutorizacion As Integer = 0
Dim DiasVencidosAutorizacion As Integer = 0
Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
Dim ObjVentas As New ClsVentas
Try
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = Nothing
'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
If TieneDiasVencidos Then
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 2 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'")
Else
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
End If
If RowAutorizacion IsNot Nothing Then
TipoDocumentoAutorizacion = RowAutorizacion("CveTipoDocumento").ToString()
ImporteAutorizacion = RowAutorizacion("Importe").ToString().ToDecimal()
CveAutorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
TipoAutorizacion = RowAutorizacion("TipoAutorizacion").ToString().ToEntero()
DiasVencidosAutorizacion = RowAutorizacion("DiasVencidos").ToString().ToEntero()
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al obtener las autorizaciones", ex)
End Try
ObjVentas.Dispose()
If TipoDocumentoAutorizacion = "Ing" Then
If TipoAutorizacion = 1 Then
If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
CveAutorizacion = -1
Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TieneDiasVencidos Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
'If TipoAutorizacion = 2 Then
' If DiasVencidosCliente > DiasVencidosAutorizacion Then
' CveAutorizacion = -1
' Alert($"El crédito no esta autorizado. Los días vencidos del cliente son mayores a lo autorizado", TipoMensaje.MsgAdvertencia)
' Exit Sub
' End If
'End If
'SI NO SE ENCONTRO NINGUA AUTORIZACION
If TipoAutorizacion = 0 Then
If TieneDiasVencidos Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If
If TieneDiasVencidos AndAlso DdlTipoComprobante.SelectedValue = "Egs" AndAlso CveAutorizacion <= 0 Then
CveAutorizacion = -1
Alert($"El crédito no esta autorizado. No tiene autorización para generar notas de crédito. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TipoDocumentoAutorizacion = "Egs" Then
If TipoAutorizacion = 1 Then
If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
CveAutorizacion = -1
Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If
End If
EmitirImprimirNew(TipoDoctoViejo)
End Sub
@@ -8487,7 +8512,7 @@ Partial Class Ventas
End If
'SI ES AMORTIZACION 3.3
Dim Obj2 As New List(Of Object)
Dim ListaNotasCreditoGeneradas As New List(Of Modelos.Factura)
Dim NCDescuento As Boolean = ((ListaNCDesc IsNot Nothing AndAlso ListaNCDesc.Count > 0) OrElse (ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0))
If ErrorList.Count = 0 Then
' cambiar la condicion para saber si hay seleccionado
@@ -8509,7 +8534,7 @@ Partial Class Ventas
CreaObjetosVentaAmortizacion(ObjVentas, FolioFiscalRelacionado, CveVentaRelacionada, NCDescuento:=NCDescuento)
If RegistrarNCAmortizacion(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjContPaq, ObjFacturaDevolucion, ObjBancos, Nothing,
Nothing, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDesc, IndexNC:=(If(DtVentasNC IsNot Nothing, DtVentasNC.Rows.Count - 1, 0))) Then
Obj2.Add(ObjFacturaDevolucion)
ListaNotasCreditoGeneradas.Add(ObjFacturaDevolucion)
End If
End If
@@ -8522,7 +8547,7 @@ Partial Class Ventas
CreaObjetosVentaBonificacion(ObjVentas, FolioFiscalRelacionado, CveVentaRelacionada, NCDescuento:=NCDescuento)
If RegistrarNCAmortizacion(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjContPaq, ObjFacturaBonificacion, ObjBancos, Nothing,
Nothing, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCBonificacion, IndexNC:=(DtVentasNC.Rows.Count - 1)) Then
Obj2.Add(ObjFacturaBonificacion)
ListaNotasCreditoGeneradas.Add(ObjFacturaBonificacion)
End If
End If
@@ -8531,7 +8556,7 @@ Partial Class Ventas
OnError("Ocurrió un error al generar nota de crédito de amortización", ex)
ErrorList.Add("No se pudo generar la nota de crédito de amortización")
End Try
If Obj2 Is Nothing AndAlso Obj2.Count = 0 Then
If ListaNotasCreditoGeneradas Is Nothing AndAlso ListaNotasCreditoGeneradas.Count = 0 Then
ErrorList.Add("No se pudo generar la nota de crédito de amortización")
End If
End If
@@ -8558,7 +8583,7 @@ Partial Class Ventas
CveVentaNCProntoPago = RespFacturaProntoPago.Mensaje.CveVenta
SerieFolioNCProntoPago = RespFacturaProntoPago.Mensaje.SerieFolio
Obj2.Add(RespFacturaProntoPago.ObjFacturaProntoPago)
ListaNotasCreditoGeneradas.Add(RespFacturaProntoPago.ObjFacturaProntoPago)
End If
End If
Else
@@ -8749,7 +8774,7 @@ Partial Class Ventas
If UsuarioActual.Empresa.TipoFacturacion = "CFDi" AndAlso (UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1) Then
'FACTURA INGRESO/EGRESO
Dim ObjTimbrado As New Timbrado
Dim FM As New Modelos.FemsaFactura
Dim TmpDT7Eleven As New DataTable
Dim TmpDTComplementosTimbrado As New DataTable
@@ -8760,34 +8785,35 @@ Partial Class Ventas
'DOCUMENTO ACTUAL
If DebeTimbrar Then
Dim ObjTimbrado As New Timbrado
SeTimbro = ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura)
Dim FolioFiscalFactura As String = ObjTimbrado.UUID
Dim MsgErrorTimbrado = ObjTimbrado.MensajeErrorCFDI
ObjTimbrado = Nothing
'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
If Not GeneroDescuentoProntoPago AndAlso Not IsNothing(Obj2) AndAlso Obj2.Count > 0 AndAlso SeTimbro Then
Dim ofa As Modelos.Factura = CType(Obj2(0), Modelos.Factura)
'asigna el foliofiscal del ingreso que se acaba de timbrar, cuando es amortización de anticipo con NC
If TieneAnticipo AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
ofa.Timbre.CFDIRelacionados.UUID.Clear()
ofa.Timbre.CFDIRelacionados.UUID.Add(ObjTimbrado.UUID)
End If
ObjTimbrado.TimbrarFactura(UsuarioActual, ofa)
GeneraPDFFactura(ChkEnviarFactura.Checked)
End If
'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
If GeneroDescuentoProntoPago AndAlso Not IsNothing(Obj2) AndAlso Obj2.Count > 0 AndAlso SeTimbro Then
If ListaNotasCreditoGeneradas.Count > 0 Then
Try
Dim ofa As Modelos.Factura = CType(Obj2(Obj2.Count - 1), Modelos.Factura)
'asigna el foliofiscal del ingreso que se acaba de timbrar, cuando es amortización de anticipo con NC
ofa.Timbre.CFDIRelacionados.UUID.Clear()
ofa.Timbre.CFDIRelacionados.UUID.Add(ObjTimbrado.UUID)
For Each NCGenerada In ListaNotasCreditoGeneradas
If NCGenerada.Timbre IsNot Nothing Then
NCGenerada.Timbre.CFDIRelacionados.UUID.Clear()
NCGenerada.Timbre.CFDIRelacionados.UUID.Add(FolioFiscalFactura)
ObjTimbrado.TimbrarFactura(UsuarioActual, ofa)
GeneraPDFFactura(ChkEnviarFactura.Checked)
Dim ObjTimbradoNC As New Timbrado
Dim TimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, NCGenerada)
If Not TimbroNC Then
Alert(ObjTimbradoNC.MensajeErrorCFDI, TipoMensaje.MsgError)
End If
ObjTimbradoNC = Nothing
End If
Next
Catch ex As Exception
OnError("Ocurrió un error al timbrar la nota de credito", ex)
OnError("Ocurrió un error al timbrar la NC.", ex)
End Try
End If
If SeTimbro AndAlso ObjFactura.TipoDocto.Contiene("Ing") Then
@@ -8795,29 +8821,26 @@ Partial Class Ventas
End If
If Not SeTimbro Then
Alert(ObjTimbrado.MensajeErrorCFDI, TipoMensaje.MsgError)
Alert(MsgErrorTimbrado, TipoMensaje.MsgError)
End If
'CANCELAR FACTURA ANTERIOR
If SeTimbro AndAlso (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
If Me.ObjFacturaNC IsNot Nothing Then
Me.ObjFacturaNC.CveEstatusRefacturacion = 2 'MARCAR COMO REFACTURADA
Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, ObjTimbrado.UUID)
Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, FolioFiscalFactura)
End If
End If
End If
'NOTA DE CREDITO DE REFACTURACION
If RefacturacionGeneroNC Then
If Not IsNothing(ObjNC) AndAlso ObjNC.Count > 0 Then
Dim ofa As Modelos.Factura = CType(ObjNC(0), Modelos.Factura)
SeTimbroNC = ObjTimbrado.TimbrarFactura(UsuarioActual, ofa)
End If
End If
ElseIf UsuarioActual.Empresa.TipoFacturacion = "CBB" Then
GeneraPDFCBB(ObjFactura.FechaCP, Nothing, ObjFactura.SerieFolio, False)
''NOTA DE CREDITO DE REFACTURACION
'If RefacturacionGeneroNC Then
' If Not IsNothing(ObjNC) AndAlso ObjNC.Count > 0 Then
' Dim ofa As Modelos.Factura = CType(ObjNC(0), Modelos.Factura)
' SeTimbroNC = ObjTimbrado.TimbrarFactura(UsuarioActual, ofa)
' End If
'End If
End If
End If
@@ -9044,7 +9067,7 @@ Partial Class Ventas
End If
ObjFactura = Nothing
Obj2 = Nothing
ListaNotasCreditoGeneradas = Nothing
End If
End If
@@ -9122,6 +9145,11 @@ Partial Class Ventas
ObjFacturaDevolucion.CveTipoRelacion = DdlTipoRelacionAnticipo.SelectedValue.ToEntero()
ObjFacturaDevolucion.TipoRelacion = "07"
If NCDescuento Then
ObjFacturaDevolucion.CveTipoRelacion = 1
ObjFacturaDevolucion.TipoRelacion = "01"
End If
Dim Fol As New List(Of String)
Fol.Add(FolioFiscalRelacionado)
ObjFacturaDevolucion.UUIDRelacionados = Fol
@@ -9396,8 +9424,8 @@ Partial Class Ventas
ObjFacturaBonificacion.UsoCFDI = DdlUsoCFDI.SelectedItem.Text
ObjFacturaBonificacion.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {DdlUsoCFDI.SelectedValue}")
ObjFacturaBonificacion.CveTipoRelacion = DdlTipoRelacionAnticipo.SelectedValue.ToEntero()
ObjFacturaBonificacion.TipoRelacion = "07"
ObjFacturaBonificacion.CveTipoRelacion = 1
ObjFacturaBonificacion.TipoRelacion = "01"
Dim Fol As New List(Of String)
Fol.Add(FolioFiscalRelacionado)
@@ -11606,7 +11634,7 @@ Partial Class Ventas
factura.Timbre.Comprobante.Serie = ObjVentas.Serie
factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString()
If UsuarioActual.CveRol = 1 AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso factura.TipoDocto = "Ing" AndAlso Me.CveAutorizacion > 0 Then
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Me.CveAutorizacion > 0 Then
If Not ObjVentas.UpdateAutorizacionLimite(Me.CveAutorizacion, factura.CveCliente, factura.CveVenta) Then
ErrorList.Add("Error al guardar los limites de la autorizacion")
End If
@@ -11710,7 +11738,7 @@ Partial Class Ventas
Dim CveTamanio As Integer = GlobalDTAcumTamaños().FiltroPrimeroValor("CveTamaño", $"CvePSCargo={CvePSCargo}").ToEntero()
If CveTamanio > 0 Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Row("Cantidad").ToString().ToDecimal(), CveTamanio, 6, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Row("Cantidad").ToString().ToDecimal(), CveTamanio, 6, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "", Now) Then
ErrorList.Add("Ocurrió un error al agregar la venta detalle devolución.")
Exit For
End If
@@ -17070,8 +17098,9 @@ Partial Class Ventas
Private Function CalcularDescuentos(CvePS As Integer, Cantidad As Decimal, PU As Decimal) As Descuentos
Dim Descuento As Decimal = HdnDescuento.Value.ToDecimal
If UsuarioActual.Empresa.Funcionalidad(572) = "1" AndAlso UsuarioActual.TienePermisoProceso(328) AndAlso Not TbDescuentosRNC.Visible Then
If UsuarioActual.Empresa.Funcionalidad(572) = "1" AndAlso Not TbDescuentosRNC.Visible Then
TbDescuentosRNC.Visible = True
LnkDescuentosRNC.Visible = UsuarioActual.TienePermisoProceso(328)
End If
If HdnTipoDescuento.Value = "0" Then
@@ -20505,7 +20534,7 @@ Partial Class Ventas
ImgDescTotal.Attributes.Add("onclick", "javascript:$('#ModalDescuento').modal(); $get('LblTitulo1').style.display = ''; $get('LblTitulo2').style.display = 'none'; $get('LblTituloTipo1').style.display = ''; $get('LblTituloTipo2').style.display = 'none'; $get('HdnTipoDescuento').value = '2'; $get('LblPrecio1').style.display = 'none'; $get('LblTotalPS1').style.display = 'none'; $get('LblSubTotal1').style.display = ''; $get('LblAmort').style.display = 'none'; $get('BtnAplicarDescP').style.display = 'none'; $get('BtnAplicarDescG').style.display = ''; $get('TrMotivoDescuento').style.display = '';")
LblSubTotal1.Text = TxtSubTotal.Text
LblAmort.Text = TxtSubTotal.Text
LimpiaEscondeContado()
UpPS.Update()
UpCliente.Update()
UPObservaciones.Update()
@@ -20993,8 +21022,18 @@ Partial Class Ventas
DdlMetodoPago33.SelectedValueExist("3")
DdlMetodoPago33.Enabled = False
If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso (Not Me.ModalidadEdicion) AndAlso Me.CveMetodoPago33Venta > 0 Then
DdlMetodoPago33.SelectedValueExist(Me.CveMetodoPago33Venta)
End If
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso Me.CveFormaPago33Venta > 0 Then
DdlFormaPago33.SelectedValueExist(Me.CveFormaPago33Venta)
End If
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
DdlFormaPago33.Enabled = False
DdlFormaPago33.SelectedValueExist("20")
End If
@@ -21017,7 +21056,11 @@ Partial Class Ventas
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
DdlFormaPago33.Enabled = True
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
End If
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso (Not Me.ModalidadEdicion) AndAlso Me.CveFormaPago33Venta > 0 Then
DdlFormaPago33.SelectedValueExist(Me.CveFormaPago33Venta)
End If
End If
@@ -21074,10 +21117,15 @@ Partial Class Ventas
DtCC.Dispose()
DdlCuentaEfectivo.DataBind()
'DdlCuentaEfectivo.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTarjetaCredito.DataBind()
'DdlCuentaTarjetaCredito.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTarjetaDebito.DataBind()
'DdlCuentaTarjetaDebito.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaCheque.DataBind()
'DdlCuentaCheque.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTransferencia.DataBind()
'DdlCuentaTransferencia.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
@@ -21127,6 +21175,11 @@ Partial Class Ventas
Return Folio
End Function
Private Sub CargaGridContado()
'If DtPagos IsNot Nothing Then
' HdnPagadoContado.Value = DtPagos.SUMD("Importe").ToString()
'Else
' HdnPagadoContado.Value = "0"
'End If
GvPagos.DataSource = DtPagos
GvPagos.DataBind()
End Sub
@@ -21149,6 +21202,12 @@ Partial Class Ventas
DtPagos = New DataTable
Dim Cambio As Decimal = TxtCambio.Text.ToDecimal
'SI ES FALTANTE NO DEBE CONSIDERARSE
If HdnCambioFaltante.Value = "2" Then
Cambio = 0
End If
DtPagos.Columns.Add("CveTipoMovimiento", GetType(String))
DtPagos.Columns.Add("TipoMovimiento", GetType(String))
DtPagos.Columns.Add("CveCuenta", GetType(String))
@@ -21162,13 +21221,15 @@ Partial Class Ventas
If total <= 0 Then Alert("No se ha ingresado importe", TipoMensaje.MsgAdvertencia) : Exit Sub
If TxtCambio.Text.ToDecimal > 0 And TxtImporteEfectivo.Text.ToDecimal < TxtCambio.Text.ToDecimal Then
If Cambio > 0 And TxtImporteEfectivo.Text.ToDecimal < Cambio Then
Alert("Debe haber un pago en efectivo y ser mayor que el cambio. Si no, ser pago exacto.", TipoMensaje.MsgAdvertencia)
CargaGridContado()
Exit Sub
End If
If (DtPagos.SUM("Importe").ToString().ToDecimal + total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
If (DtPagos.SUM("Importe").ToString().ToDecimal + total - Cambio) > TxtTotal.Text.ToDecimal Then
Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor rectifique.", TipoMensaje.MsgAdvertencia)
CargaGridContado()
Exit Sub
End If
@@ -21180,7 +21241,7 @@ Partial Class Ventas
DrEfectivo("TipoMovimiento") = "Pago en Efectivo"
DrEfectivo("CveCuenta") = DdlCuentaEfectivo.SelectedValue
DrEfectivo("Cuenta") = DdlCuentaEfectivo.SelectedItem.Text
DrEfectivo("Importe") = TxtImporteEfectivo.Text.ToDecimal - TxtCambio.Text.ToDecimal
DrEfectivo("Importe") = TxtImporteEfectivo.Text.ToDecimal - Cambio
DrEfectivo("Folio") = CargaFolioContado(DdlCuentaEfectivo.SelectedValue.ToEntero(), 6)
DrEfectivo("Observaciones") = ""
DrEfectivo("Tipo") = "Caja Chica"
@@ -21423,6 +21484,53 @@ Partial Class Ventas
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso RBLPago.SelectedValue = "2" AndAlso CveVenta <= 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") Then
If Not TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then
If MostrarAlertas Then
Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia)
End If
Retorno = True
Return Retorno
End If
If TienePagos Then
Dim TotalPagoContado As Decimal = If(DtPagos IsNot Nothing, DtPagos.SUM("Importe").ToDecimal(), 0) + AmortizacionNC
Dim TotalProntoPago As Decimal = LblProntoPago.Text.ToDecimal()
If UsuarioActual.Empresa.Funcionalidad(572) = "1" Then
Dim TotalRNC As Decimal = If((ListaNCDesc IsNot Nothing AndAlso ListaNCDesc.Count > 0) OrElse (ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0), LblDescuentosRNC.Text.Trim().ToDecimal(), 0)
Dim ImporteTotal As Decimal = (TxtTotal.Text.ToDecimal).RoundSQL(2)
Dim TotalPagado = (TotalPagoContado + TotalRNC + TotalProntoPago).RoundSQL(2)
If TotalPagado <> ImporteTotal Then
If MostrarAlertas Then
Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
End If
Retorno = True
Return Retorno
End If
Else
Dim TotalPagado = (TotalPagoContado + TotalProntoPago).RoundSQL(2)
If TotalPagado <> TxtTotal.Text.ToDecimal.RoundSQL(2) Then
If MostrarAlertas Then
Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
End If
Retorno = True
Return Retorno
End If
End If
End If
End If
'SI TIENE SALDO PENDIENTE VALIDA SI TIENE PAGOS
If Me.SaldoVenta > 0 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso (UsuarioActual.Empresa.Funcionalidad(531) = "1") AndAlso (Not PermiteCredito) AndAlso Not TienePagos And TxtTotal.Text.ToDecimal > 0 Then
@@ -21953,10 +22061,10 @@ Partial Class Ventas
Dim DtDireccionEnvio As DataTable = Nothing
Dim ObjClientes As New ClsClientes
If ObjClientes.DireccionEnvioGet(DdlDireccionEnvio.SelectedValue.ToEntero(), CveCliente, CveClienteSucursal) Then
DtDireccionEnvio = ObjClientes.DtResultados
End If
Dim ObjClientes As New ClsClientes
If ObjClientes.DireccionEnvioGet(DdlDireccionEnvio.SelectedValue.ToEntero(), CveCliente, CveClienteSucursal) Then
DtDireccionEnvio = ObjClientes.DtResultados
End If
ObjClientes.Dispose()
If DtDireccionEnvio IsNot Nothing And DtDireccionEnvio.Rows.Count > 0 Then
@@ -22001,7 +22109,7 @@ Partial Class Ventas
RegistraScript("$('#divAddDireccionEnvio').modal();")
End Sub
#Region "D I R E C C I O N E N V I O - C O M B O S"
#Region "D I R E C C I O N E N V I O - C O M B O S"
Protected Sub BtnDirClienteValidar_Click(sender As Object, e As EventArgs)
DirClientevalidaCodigoPostal()
End Sub
@@ -22015,27 +22123,27 @@ Partial Class Ventas
Private Sub CargaDirClientePais()
DdlDirClientePais.DataSource = GlobalDTGralPaises()
DdlDirClientePais.DataBind()
DdlDirClientePais.SelectedValueExist("151")
End Sub
Private Sub CargaDirClienteEstado()
DdlDirClienteEstado.Items.Clear()
If DdlDirClientePais.SelectedValue.ToEntero > 0 Then
DdlDirClienteEstado.DataSource = GlobalDTGralEstados("-1", DdlDirClientePais.SelectedValue.ToEntero)
End If
DdlDirClienteEstado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteEstado.DataBind()
DdlDirClientePais.DataSource = GlobalDTGralPaises()
DdlDirClientePais.DataBind()
DdlDirClientePais.SelectedValueExist("151")
End Sub
Private Sub CargaDirClienteColonia()
DdlDirClienteColonia.Items.Clear()
Private Sub CargaDirClienteEstado()
DdlDirClienteEstado.Items.Clear()
If DdlDirClientePais.SelectedValue.ToEntero > 0 Then
DdlDirClienteEstado.DataSource = GlobalDTGralEstados("-1", DdlDirClientePais.SelectedValue.ToEntero)
End If
DdlDirClienteEstado.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteEstado.DataBind()
End Sub
Private Sub CargaDirClienteColonia()
DdlDirClienteColonia.Items.Clear()
If DdlDirClienteMunicipio.SelectedValue.ToEntero > 0 Then
DdlDirClienteColonia.DataSource = GlobalDTGralColonias("-1", "-1", "-1", DdlDirClienteMunicipio.SelectedValue.ToEntero, CodigoPostal:=If(TxtEnvioCP.Text.Trim.Length > 0, TxtEnvioCP.Text.ToEntero, -1))
End If
DdlDirClienteColonia.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteColonia.DataBind()
End If
DdlDirClienteColonia.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteColonia.DataBind()
End Sub
@@ -22052,24 +22160,24 @@ Partial Class Ventas
End Sub
Private Sub CargaDirClienteMunicipio()
DdlDirClienteMunicipio.Items.Clear()
If DdlDirClienteEstado.SelectedValue.ToEntero > 0 Then
DdlDirClienteMunicipio.DataSource = GlobalDTGralMunicipios("-1", DdlDirClienteEstado.SelectedValue.ToEntero)
End If
DdlDirClienteMunicipio.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteMunicipio.DataBind()
DdlDirClienteMunicipio.Items.Clear()
If DdlDirClienteEstado.SelectedValue.ToEntero > 0 Then
DdlDirClienteMunicipio.DataSource = GlobalDTGralMunicipios("-1", DdlDirClienteEstado.SelectedValue.ToEntero)
End If
DdlDirClienteMunicipio.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlDirClienteMunicipio.DataBind()
End Sub
Protected Sub DdlDirClientePais_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaDirClienteEstado()
CargaDirClienteMunicipio()
CargaDirClienteColonia()
CargaDirClienteLocalidad()
End Sub
Protected Sub DdlDirClienteEstado_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaDirClienteMunicipio()
CargaDirClienteColonia()
CargaDirClienteLocalidad()
Protected Sub DdlDirClientePais_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaDirClienteEstado()
CargaDirClienteMunicipio()
CargaDirClienteColonia()
CargaDirClienteLocalidad()
End Sub
Protected Sub DdlDirClienteEstado_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaDirClienteMunicipio()
CargaDirClienteColonia()
CargaDirClienteLocalidad()
End Sub
Protected Sub DdlDirClienteMunicipio_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -22833,7 +22941,7 @@ Partial Class Ventas
'Else
'End If
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs", "RNC") Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then
Dim sb As New StringBuilder()
Dim sbExtra As New StringBuilder()
@@ -25946,7 +26054,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -26026,7 +26134,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -26066,7 +26174,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26141,7 +26249,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26189,7 +26297,7 @@ Partial Class Ventas
'GvRemisionesNCBonDetalle.DataBind()
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26235,7 +26343,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCBonificacionDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -27319,10 +27427,14 @@ Partial Class Ventas
'Dim RNCCargo = ListaNC.Where(Function(f) f.CveVenta = RNCBonificacion.CveVentaRNCCargo).FirstOrDefault()
For Each RowCargo As DataRow In TmpDT.FiltraParametros("EsCargo = True", Orderby:="PU").Rows
Dim CantidadCargo = RowCargo("Cantidad").ToString().ToDecimal()
Dim ImportePU As Decimal = GlobalDTAcumTamaños().FiltroPrimeroValor("Bonificacion", $"CvePSCargo={RowCargo("CvePS")}").ToDecimal()
Dim TotalCalculableImpuestosCargo As Decimal = (CantidadCargo * ImportePU)
Dim TotalCargo As Decimal = TotalCalculableImpuestosCargo + (TotalCalculableImpuestosCargo * RowCargo("PorcentajeIVA").ToString().ToDecimal).RoundSQL(2)
Dim PorcentajeAplicado = (RNCBonificacion.TotalRemNCAplicado / RNCBonificacion.Total)
Dim PorcentajeAplicado = (RNCBonificacion.TotalRemNCAplicado / TotalCargo)
Dim Cantidad As Decimal = RowCargo("Cantidad").ToString().ToDecimal() '* PorcentajeAplicado
Dim Cantidad As Decimal = RowCargo("Cantidad").ToString().ToDecimal() * PorcentajeAplicado
Dim Obs = RowCargo("CodigoPS").ToString()
@@ -27332,7 +27444,7 @@ Partial Class Ventas
'Dim ImportePU = RowCargo("PUBonificacion").ToString().ToDecimal
Dim ImportePU As Decimal = GlobalDTAcumTamaños().FiltroPrimeroValor("Bonificacion", $"CvePSCargo={RowCargo("CvePS")}").ToDecimal()
Dim TotalCalculableImpuestos As Decimal = (Cantidad * ImportePU)
@@ -30947,7 +31059,7 @@ Partial Class Ventas
For Each drow As DataRow In factura.DtDetalle.Rows
If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToDecimal, drow("CveTamaño").ToString.ToEntero, CveConcepto, factura.CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0D, "") Then
UsuarioActual.CveEmpresa, 0D, "", Now) Then
Resultado = False
Exit For
End If
@@ -31323,15 +31435,18 @@ Partial Class Ventas
If GvRow.FCCheckBox("ChkAplicar").Checked Then
Dim Rows = TmpDTRNCDetalle.Select($"CveVentaDetalleRNC = {GvRow.DataKey("CveVentaDetalleRNC").ToEntero()}")
For Each row In Rows
row("Cantidad") = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
If GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal() > 0 Then
row("Cantidad") = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
Dim TotalCalculableImpuestos As Decimal = row("Cantidad").ToString().ToDecimal() * row("PU").ToString().ToDecimal()
Dim IVA As Decimal = (TotalCalculableImpuestos * row("PorcentajeIVA").ToString().ToDecimal()).RoundSQL()
Dim TotalCalculableImpuestos As Decimal = row("Cantidad").ToString().ToDecimal() * row("PU").ToString().ToDecimal()
Dim IVA As Decimal = (TotalCalculableImpuestos * row("PorcentajeIVA").ToString().ToDecimal()).RoundSQL()
row("IVA") = IVA
row("Total") = (TotalCalculableImpuestos + IVA).RoundSQL
row("IVA") = IVA
row("Total") = (TotalCalculableImpuestos + IVA).RoundSQL
TmpDTRNCDetalleSelecciondas.Rows.Add(row.ItemArray)
End If
TmpDTRNCDetalleSelecciondas.Rows.Add(row.ItemArray)
Next
End If
End If
@@ -31357,18 +31472,25 @@ Partial Class Ventas
If GvRow.FCCheckBox("ChkAplicar").Checked AndAlso GvRow.DataKey("CveVenta").ToEntero() = Dr("CveVenta").ToString().ToEntero() Then
Dim Cantidad As Decimal = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
Dim PU = GvRow.DataKey("PU").ToDecimal()
Dim PorcentajeIVA As Decimal = GvRow.DataKey("PorcentajeIVA").ToDecimal()
If Cantidad > 0 Then
Dim PU = GvRow.DataKey("PU").ToDecimal()
Dim PorcentajeIVA As Decimal = GvRow.DataKey("PorcentajeIVA").ToDecimal()
Dim TotalCalculableImpuestos As Decimal = (Cantidad * PU)
Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2)
Dim TotalCalculableImpuestos As Decimal = (Cantidad * PU)
Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2)
Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA)
Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA)
TotalRNC += TotalRNCDetalle
TotalRNC += TotalRNCDetalle
If RemNC.CveVentaRNCCargo <= 0 Then
RemNC.CveVentaRNCCargo = GvRow.DataKey("CveVenta").ToEntero()
If RemNC.CveVentaRNCCargo <= 0 Then
RemNC.CveVentaRNCCargo = GvRow.DataKey("CveVenta").ToEntero()
End If
Else
Alert($"La cantidad seleccionada debe ser mayor a 0.", TipoMensaje.MsgAdvertencia)
ListaNCDesc.Clear()
ListaNCBonificacion.Clear()
Exit Sub
End If
End If
@@ -31477,15 +31599,17 @@ Partial Class Ventas
If GvRow.FCCheckBox("ChkAplicar").Checked Then
Dim Rows = TmpDTRNCBonificacionDetalle.Select($"CveVentaDetalleRNC = {GvRow.DataKey("CveVentaDetalleRNC").ToEntero()}")
For Each row In Rows
row("Cantidad") = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
If GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal() > 0 Then
row("Cantidad") = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
Dim TotalCalculableImpuestos As Decimal = row("Cantidad").ToString().ToDecimal() * row("PU").ToString().ToDecimal()
Dim IVA As Decimal = (TotalCalculableImpuestos * row("PorcentajeIVA").ToString().ToDecimal()).RoundSQL()
Dim TotalCalculableImpuestos As Decimal = row("Cantidad").ToString().ToDecimal() * row("PU").ToString().ToDecimal()
Dim IVA As Decimal = (TotalCalculableImpuestos * row("PorcentajeIVA").ToString().ToDecimal()).RoundSQL()
row("IVA") = IVA
row("Total") = (TotalCalculableImpuestos + IVA).RoundSQL
row("IVA") = IVA
row("Total") = (TotalCalculableImpuestos + IVA).RoundSQL
TmpDTRNCBonificacionDetalleSeleccionadas.Rows.Add(row.ItemArray)
TmpDTRNCBonificacionDetalleSeleccionadas.Rows.Add(row.ItemArray)
End If
Next
End If
End If
@@ -31503,20 +31627,28 @@ Partial Class Ventas
If GvRow.FCCheckBox("ChkAplicar").Checked AndAlso GvRow.DataKey("CveVenta").ToEntero() = Dr("CveVenta").ToString().ToEntero() Then
Dim Cantidad As Decimal = GvRow.FCTextBox("TxtCantidadRNC").Text.ToDecimal()
Dim PU = GvRow.DataKey("PU").ToDecimal()
Dim PorcentajeIVA As Decimal = GvRow.DataKey("PorcentajeIVA").ToDecimal()
If Cantidad > 0 Then
Dim PU = GvRow.DataKey("PU").ToDecimal()
Dim PorcentajeIVA As Decimal = GvRow.DataKey("PorcentajeIVA").ToDecimal()
Dim TotalCalculableImpuestos As Decimal = (Cantidad * PU)
Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2)
Dim TotalCalculableImpuestos As Decimal = (Cantidad * PU)
Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2)
Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA)
Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA)
TotalRNC += TotalRNCDetalle
TotalRNC += TotalRNCDetalle
If RemNC.CveVentaRNCCargo <= 0 Then
RemNC.CveVentaRNCCargo = GvRow.DataKey("CveVenta").ToEntero()
If RemNC.CveVentaRNCCargo <= 0 Then
RemNC.CveVentaRNCCargo = GvRow.DataKey("CveVenta").ToEntero()
End If
Else
Alert($"La cantidad seleccionada debe ser mayor a 0.", TipoMensaje.MsgAdvertencia)
ListaNCDesc.Clear()
ListaNCBonificacion.Clear()
Exit Sub
End If
End If
End If
@@ -32757,7 +32889,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND TipoRNC = 3 AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -32929,6 +33061,10 @@ Partial Class Ventas
Dim CveEstatus As Integer = 0
Dim TipoDocto As String = DdlTipoDocto.SelectedValue
Dim CveTipoAutorizacion As Integer = DdlTipoAutorizacion.SelectedValue.ToEntero()
If CveTipoAutorizacion <= 0 Then
Alert("Debe seleccionar un tipo de autorización", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If CveTipoAutorizacion = 2 Then
DiasVencidos = TxtDiasVencidos.Text.ToEntero()