From 2035c0a18e9e2c752ff1ade03c01be5335d5eae0 Mon Sep 17 00:00:00 2001 From: Raul Pimienta Date: Tue, 27 Aug 2019 11:33:57 -0700 Subject: [PATCH] Soporte Compras Nota de credito para remision --- Compras/Compras.aspx.vb | 21 ++++++++------ Planeacion/CatFolios.aspx.vb | 1 + Ventas/PopUpBuscarFolio.aspx | 1 + Ventas/Ventas.aspx.vb | 53 ++++++++++++++++++++++++++++++------ 4 files changed, 58 insertions(+), 18 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index ee9dc3df8..78272dc76 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -9741,18 +9741,21 @@ Partial Class Compras_Compras ReceptorRFC = ValorXML(node, "RFC") End If - node = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces) - If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then - If ValorXML(node, "TipoRelacion").ToString.Contiene("04", "07") Then - Dim nodeDocumentosRelacionados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:CfdiRelacionado", Prefijo), namespaces) - For Each documento As XmlNode In nodeDocumentosRelacionados - If documento.Attributes("UUID").Value <> "" Then - ListaDocumentos.Add(documento.Attributes("UUID").Value) - End If - Next + If UsuarioActual.CveEmpresa.Contiene(119) Then + node = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces) + If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then + If ValorXML(node, "TipoRelacion").ToString.Contiene("04", "07") Then + Dim nodeDocumentosRelacionados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:CfdiRelacionado", Prefijo), namespaces) + For Each documento As XmlNode In nodeDocumentosRelacionados + If documento.Attributes("UUID").Value <> "" Then + ListaDocumentos.Add(documento.Attributes("UUID").Value) + End If + Next + End If End If End If + node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces) If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Impuestos/{0}:Retenciones/{0}:Retencion", Prefijo), namespaces) diff --git a/Planeacion/CatFolios.aspx.vb b/Planeacion/CatFolios.aspx.vb index 70eaeb189..1c8f92399 100644 --- a/Planeacion/CatFolios.aspx.vb +++ b/Planeacion/CatFolios.aspx.vb @@ -70,6 +70,7 @@ Partial Class CatFolios DdlTipoDocto.Items.Insert(31, New ListItem("Proveedor", "Pro")) DdlTipoDocto.Items.Insert(32, New ListItem("Acreedor", "Acr")) DdlTipoDocto.Items.Insert(33, New ListItem("Productos/Servicios", "PS")) + DdlTipoDocto.Items.Insert(34, New ListItem("NC de Remisión", "RNC")) ElseIf UsuarioActual.Empresa.CvePlataforma = 2 Then DdlTipoDocto.Items.Insert(1, New ListItem("Facturas", "Ing")) DdlTipoDocto.Items.Insert(2, New ListItem("Notas de Crédito", "Egs")) diff --git a/Ventas/PopUpBuscarFolio.aspx b/Ventas/PopUpBuscarFolio.aspx index 79cf3b927..e05a1490b 100644 --- a/Ventas/PopUpBuscarFolio.aspx +++ b/Ventas/PopUpBuscarFolio.aspx @@ -46,6 +46,7 @@ + Estatus Factura: diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index eb95bd40a..a20b8a60a 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -1727,6 +1727,10 @@ Partial Class Ventas DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("Pedido", "Pd2")) + If UsuarioActual.Empresa.Funcionalidad(344).ToString = "1" Then + DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("NC de Remisión", "RNC")) + End If + If UsuarioActual.Empresa.Funcionalidad(528) = "1" Then 'FUNCIONALIDAD. DE REGISTRO DE CUENTA PREDIAL. GvPS.Columns(ColumnaPredial).Visible = True thPredial1.Visible = True @@ -6568,7 +6572,7 @@ Partial Class Ventas 'ContPAQ El movimiento 1 es el de Venta Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1" - If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "Cot", "Ped", "Pd2", "PA", "NC") Then + If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "NC") Then AutoConta = False End If @@ -6623,7 +6627,7 @@ Partial Class Ventas Dim EstatusSMS = 0 'TIMBRADO Y CASO ESPECIAL NOTA DE CREDITO - If (TipoDoctoDevolucion = "" OrElse Not TipoDoctoDevolucion.Contiene("Rem", "Cot", "Ped", "DPe", "PA", "Pd2")) Then + If (TipoDoctoDevolucion = "" OrElse Not TipoDoctoDevolucion.Contiene("Rem", "RNC", "Cot", "Ped", "DPe", "PA", "Pd2")) Then Dim DebeTimbrar As Boolean = True If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then @@ -9104,7 +9108,7 @@ Partial Class Ventas CvePlantilaPoliza = 4 ElseIf ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then CvePlantilaPoliza = 7 - ElseIf ObjFactura.TipoDocto = "Rem" Then + ElseIf ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then CvePlantilaPoliza = 4 End If @@ -9173,7 +9177,7 @@ Partial Class Ventas Select Case ConceptoContable Case 1 'Cliente - If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Egs", "Rem", "RNC") Then importeMovimiento = (ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -9247,6 +9251,37 @@ Partial Class Ventas ViewState("SeGuardoPrePoliza") = True End If + Case 277 'Remisión del cliente + + If ObjFactura.TipoDocto = "RNC" Then + importeMovimiento = (ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador + 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:=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:=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 + ViewState("SeGuardoPrePoliza") = True + End If + Case 12 'Nota de Credito If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then importeMovimiento = ObjFactura.Total * ValorMultiplicador @@ -9712,7 +9747,7 @@ Partial Class Ventas importeMovimiento = 0 Case 4 'Venta Clasificacion - If Not ObjFactura.TipoDocto.Contiene("Rem", "Ant", "Egs", "Dev") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC", "Ant", "Egs", "Dev") Then Dim ConceptoContableAplicar = 4 Dim CveVentaAplicar = ObjFactura.CveVenta @@ -9890,7 +9925,7 @@ Partial Class Ventas importeMovimiento = 0 Case 103 'Descuento - If Not ObjFactura.TipoDocto.Contiene("Rem") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "-1" Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "-1" Then importeMovimiento = ObjFactura.Descuento * ValorMultiplicador importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador @@ -9937,7 +9972,7 @@ Partial Class Ventas End If Case 8 'Ret IVA por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = ObjFactura.RetIVA * ValorMultiplicador importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -9968,7 +10003,7 @@ Partial Class Ventas End If Case 9 'Ret ISR por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = ObjFactura.RetISR * ValorMultiplicador importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -9998,7 +10033,7 @@ Partial Class Ventas End If End If Case 13 'Iva por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then importeMovimiento = ObjFactura.IVA * ValorMultiplicador importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2) FechaMovimiento = ObjFactura.FechaPago