diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index d3a93936f..10a12ba62 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -5109,6 +5109,8 @@ Namespace Modelos
Public Property Total As Decimal
Public Property Otros As Decimal
+ Public Property TotalRemNCAplicado As Decimal
+
#Region "Totales por Tipo de cambio"
Public ReadOnly Property SubTotalTC As Decimal
diff --git a/LogMail.txt b/LogMail.txt
index 6b789a002..23f7b21bb 100644
--- a/LogMail.txt
+++ b/LogMail.txt
@@ -4,4 +4,4 @@
en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
05/09/2019:12:31 p. m. From:'signotificaciones@adssistemas.mx' - Para:';' - Asunto:'Envío de complemento de pago' - CCP: '' - Adjuntos: 2
- Ocurrió un error al mandar correo.System.InvalidOperationException: Se debe especificar un destinatario.
en System.Net.Mail.SmtpClient.Send(MailMessage message)
- en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
10/09/2019:12:16 p. m. From:'signotificaciones@adssistemas.mx' - Para:'DSDDS@hotmail.com' - Asunto:'SIG - La Orden Compra #26598 cambió de estatus.' - CCP: '' - Adjuntos: 0
10/09/2019:02:58 p. m. No se especifico a remitente - SIG - La Orden Compra #28107 cambió de estatus.
11/09/2019:11:56 a. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Solicitud Vacaciones ' - CCP: '' - Adjuntos: 0
11/09/2019:12:35 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'(Vacaciones:Permisos) Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:02 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Permiso para Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:03 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:10 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
20/09/2019:05:15 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29109' - CCP: '' - Adjuntos: 1
20/09/2019:05:36 p. m. No se especifico a remitente - Entrega de Factura HMO - 29110
20/09/2019:05:45 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29111' - CCP: '' - Adjuntos: 1
20/09/2019:05:47 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29112' - CCP: '' - Adjuntos: 1
23/09/2019:10:55 a. m. From:'signotificaciones@adssistemas.mx' - Para:'japmx95@gmail.com' - Asunto:'Solicitud de anticipo de Orden de Compra' - CCP: '' - Adjuntos: 0
23/09/2019:11:05 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
23/09/2019:11:34 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
25/09/2019:05:06 p. m. No se especifico a remitente - SIG - La Orden Compra #4860 cambió de estatus.
\ No newline at end of file
+ en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
10/09/2019:12:16 p. m. From:'signotificaciones@adssistemas.mx' - Para:'DSDDS@hotmail.com' - Asunto:'SIG - La Orden Compra #26598 cambió de estatus.' - CCP: '' - Adjuntos: 0
10/09/2019:02:58 p. m. No se especifico a remitente - SIG - La Orden Compra #28107 cambió de estatus.
11/09/2019:11:56 a. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Solicitud Vacaciones ' - CCP: '' - Adjuntos: 0
11/09/2019:12:35 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'(Vacaciones:Permisos) Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:02 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Permiso para Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:03 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:10 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
20/09/2019:05:15 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29109' - CCP: '' - Adjuntos: 1
20/09/2019:05:36 p. m. No se especifico a remitente - Entrega de Factura HMO - 29110
20/09/2019:05:45 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29111' - CCP: '' - Adjuntos: 1
20/09/2019:05:47 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29112' - CCP: '' - Adjuntos: 1
23/09/2019:10:55 a. m. From:'signotificaciones@adssistemas.mx' - Para:'japmx95@gmail.com' - Asunto:'Solicitud de anticipo de Orden de Compra' - CCP: '' - Adjuntos: 0
23/09/2019:11:05 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
23/09/2019:11:34 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
25/09/2019:05:06 p. m. No se especifico a remitente - SIG - La Orden Compra #4860 cambió de estatus.
04/10/2019:12:09 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 83
\ No newline at end of file
diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb
index 035dc787f..e3d086277 100644
--- a/Ventas/PV.aspx.vb
+++ b/Ventas/PV.aspx.vb
@@ -2517,6 +2517,18 @@ Partial Class PV
ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End If
+ '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
+ 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
+ ErrorList.Add("Ocurrió un error al seleccionar el almacen de entrega por adelantado de la sucursal.")
+ End If
+ End If
End Sub
diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index 93e5d8659..86d66d7d5 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -5807,8 +5807,16 @@
+
+ <%--APLICAR REMISIONES DE NC--%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<%-- MODAL APLICAR DEVOLUCIONES --%>
@@ -6290,6 +6364,12 @@
$get('TxtTotalGv').value = FormatoNumero(TotalImportes, 2);
$get('TxtNCImporte').value = FormatoNumero(total, 2);
+
+ if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
+ {
+ CompararNC();
+ }
+
}
function CalculaTotalChk(Total, SubTotal, TxtTotalGv, TxtImporte, Saldo, Porcentaje, Chk) {
@@ -6314,6 +6394,11 @@
$get('TxtNCImporte').value = FormatoNumero(ToDouble($get('TxtNCImporte').value) - ToDouble(TxtImporte.value), 2);
TxtImporte.value = "";
}
+
+ if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
+ {
+ CompararNC();
+ }
}
function LimitaCantidadNCMasivo(Porcentaje, Saldo, Total, Subtotal, TxtTotalGv, TxtTotal, Chk, TxtImporte) {
@@ -6354,6 +6439,10 @@
TxtTotal.value = FormatoNumero(TotalConPorcentaje, 2);
+ if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
+ {
+ CompararNC();
+ }
}
function displayToastr(x) {
@@ -7328,5 +7417,33 @@
$('#divAgregarCliente').modal('hide');
}
+ function CompararNC() {
+ var TotalRem = ToDouble(document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').value);
+ var TotalNC = ToDouble(document.getElementById('<%= TxtNCImporte.ClientID %>').value);
+
+ if (TotalRem == TotalNC) {
+ document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.border = "2px solid #04B431";
+ document.getElementById('<%= TxtNCImporte.ClientID %>').style.border = "2px solid #04B431";
+ document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.color = "";
+ document.getElementById('<%= TxtNCImporte.ClientID %>').style.color = "";
+
+ }
+ else {
+
+ document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.border = "2px solid #ff0000";
+ document.getElementById('<%= TxtNCImporte.ClientID %>').style.border = "2px solid #ff0000";
+ document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.color = "#ff0000";
+ document.getElementById('<%= TxtNCImporte.ClientID %>').style.color = "#ff0000";
+ }
+ }
+
+ function CerrarModalRemNC() {
+ if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
+ {
+ CompararNC();
+ }
+ $('#ModalAplicarRemisionesNC').modal('hide');
+ }
+
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 909a07ec2..24c458fb8 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -257,6 +257,14 @@ Partial Class Ventas
ViewState("RemisionesLista") = value
End Set
End Property
+ Private Property ListaRemisionesNC As List(Of Modelos.Factura)
+ Get
+ Return If(IsNothing(ViewState("ListaRemisionesNC")), Nothing, CType(ViewState("ListaRemisionesNC"), List(Of Modelos.Factura)))
+ End Get
+ Set(value As List(Of Modelos.Factura))
+ ViewState("ListaRemisionesNC") = value
+ End Set
+ End Property
Private Property Pedidos2Lista As List(Of Integer)
Get
Return If(IsNothing(ViewState("Pedidos2Lista")), Nothing, CType(ViewState("Pedidos2Lista"), List(Of Integer)))
@@ -1733,6 +1741,9 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(344).ToString = "1" Then
DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("NC de Remisión", "RNC"))
+ DivBtnRemNC.Visible = True
+ DivTxtRemNC.Visible = True
+ LtlTitleImportesRem.Visible = True
End If
If UsuarioActual.Empresa.Funcionalidad(528) = "1" Then 'FUNCIONALIDAD. DE REGISTRO DE CUENTA PREDIAL.
@@ -4937,7 +4948,7 @@ Partial Class Ventas
Dim ObjCliente As New ClsClientes()
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
- If UsuarioActual.CveEmpresa.Contiene(72, 119) AndAlso ObjCliente.DtResultados.Rows(0)("PermiteCredito").ToString = "False" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
+ If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso ObjCliente.DtResultados.Rows(0)("PermiteCredito").ToString = "False" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
RBLPago.SelectedValue = "2"
RBLPago.Items(0).Enabled = False
RBLPago_SelectedIndexChanged(Nothing, Nothing)
@@ -9303,7 +9314,7 @@ Partial Class Ventas
ViewState("SeGuardoPrePoliza") = True
End If
- Case 277 'Remisión del cliente
+ Case 277 'Remisión de NC
If ObjFactura.TipoDocto = "RNC" Then
importeMovimiento = (ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador
@@ -9788,6 +9799,42 @@ Partial Class Ventas
Next
+ If UsuarioActual.Empresa.Funcionalidad(344) = "1" Then
+ If ListaRemisionesNC IsNot Nothing Then
+ For Each ObjRNC As Modelos.Factura In ListaRemisionesNC
+ If ObjRNC.TipoDocto = "RNC" Then
+ importeMovimiento = ObjRNC.TotalRemNCAplicado * -1
+ importeMX = importeMovimiento * tipoCambio * Multiplicador
+ FechaMovimiento = ObjFactura.FechaPago
+ CveSubProyectoContabilizar = CveSubProyectoVenta
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+
+ If tipoCambio = 1 Then
+ IdCtaContable = ObjFactura.Cliente.IdCtaContClientes
+ CveCuenta = ObjFactura.Cliente.CveCuentaClientes
+ Else
+ IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
+ CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
+ End If
+
+ IdCtaContableCliente = IdCtaContable
+ CveCuentaCliente = CveCuenta
+
+ If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ End If
+ Else
+ ErrorPrepoliza = True
+ End If
+
+ importeMovimiento = 0
+ End If
+ Next
+ End If
+ End If
+
+
If sumaAmorticaciones <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, sumaAmorticaciones, Referencia, 251, Concepto, FechaMovimiento, IdCtaContClientes, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=sumaAmorticaciones * tipoCambio, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaCliente, CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=Contabilizable) Then
ErrorPrepoliza = True
@@ -20196,6 +20243,9 @@ Partial Class Ventas
End If
RVTxtNCImporte.MaximumValue = ((PorcentajeMaximo * TxtTotal.Text.ToDouble) / 100).FormatoNumero().ToDouble.ToString
+ 'RVIRNC.MinimumValue = RVTxtNCImporte.MinimumValue
+ 'RVIRNC.MaximumValue = RVTxtNCImporte.MaximumValue
+
UpAplicarNC.Update()
End Sub
@@ -20217,13 +20267,14 @@ Partial Class Ventas
'LkNotaCredito.Visible = False
DivGvCxC.Visible = True
CargaCxC()
+ CargaRNC()
TxtNCPorcentaje.Attributes.Add("onkeyup", "CalculaImporteNCMasivo();")
TxtNCImporte.Text = "0.00"
TxtNCImporte.Enabled = False
RVTxtNCImporte.Enabled = False
UpAplicarNC.Update()
-
+ UpModalRemisionesNC.Update()
End Sub
Private Sub CargaCxC()
@@ -20235,6 +20286,14 @@ Partial Class Ventas
ObjMovtos.Dispose()
GvCxC.DataBind()
End Sub
+ Private Sub CargaRNC()
+ Dim ObjMovtos As New ClsMovimientos()
+ If ObjMovtos.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, -1, TipoDocto:="RNC") Then
+ GvRemisionesNC.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act' AND CveVenta > 0", "Moneda, OrdenVencimiento, FechaVencimiento")
+ End If
+ ObjMovtos.Dispose()
+ GvRemisionesNC.DataBind()
+ End Sub
Protected Sub GvCxC_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
@@ -20258,6 +20317,14 @@ Partial Class Ventas
Protected Sub BtnAplicarNC_Click(sender As Object, e As EventArgs)
+ If UsuarioActual.Empresa.Funcionalidad(344) = "1" Then
+ If TxtImportesRemisionesNC.Text.ToDecimal() <> TxtNCImporte.Text.ToDecimal() Then
+ Alert($"Los importes no coinciden", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
+
Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlNCPS.SelectedValue.ToEntero).FiltroPrimero("")
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del producto. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
@@ -22955,4 +23022,38 @@ Partial Class Ventas
#End Region
+ Protected Sub BtnAplicarRemisionNC_Click(sender As Object, e As EventArgs)
+ If ListaRemisionesNC Is Nothing Then
+ ListaRemisionesNC = New List(Of Modelos.Factura)
+ Else
+ ListaRemisionesNC.Clear()
+ End If
+
+ Dim TotalRemNCAplicado As Decimal = 0
+ For Each GvRow As GridViewRow In GvRemisionesNC.Rows
+ If GvRow.RowType = DataControlRowType.DataRow Then
+ If GvRow.FCCheckBox("ChkAplicar").Checked Then
+ Dim RemNC As New Modelos.Factura(UsuarioActual, GvRow.DataKey("CveVenta").ToEntero(), UsuarioActual.CveEmpresa)
+ RemNC.TotalRemNCAplicado = GvRow.FCTextBox("TxtImporte").Text.ToDecimal()
+ TotalRemNCAplicado += RemNC.TotalRemNCAplicado
+
+ If RemNC.TotalRemNCAplicado <= 0 Then
+ Alert($"Debe asignar un importe en la siguiente remisión: {RemNC.SerieFolio}", TipoMensaje.MsgAdvertencia)
+ ListaRemisionesNC.Clear()
+ Exit Sub
+ End If
+
+ ListaRemisionesNC.Add(RemNC)
+ End If
+ End If
+ Next
+
+ TxtImportesRemisionesNC.Text = TotalRemNCAplicado.FormatoNumero
+
+ UpModalRemisionesNC.Update()
+ UpAplicarNC.Update()
+
+ RegistraScript("CerrarModalRemNC();")
+
+ End Sub
End Class
\ No newline at end of file