Compras manuales, actualziar IVa y Total
This commit is contained in:
@@ -9373,7 +9373,7 @@ Partial Class Compras_Compras
|
|||||||
|
|
||||||
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
If Not ErrorAC Then
|
If Retorno AndAlso Not ErrorAC Then
|
||||||
Dim Cont As Integer = 0
|
Dim Cont As Integer = 0
|
||||||
Dim indiceTR As Integer = 0
|
Dim indiceTR As Integer = 0
|
||||||
For Each Row As DataRow In TmpDT.Rows
|
For Each Row As DataRow In TmpDT.Rows
|
||||||
@@ -9501,6 +9501,11 @@ Partial Class Compras_Compras
|
|||||||
End If
|
End If
|
||||||
'Retorno = True
|
'Retorno = True
|
||||||
'Alert("La Compra se actualizó correctamente.")
|
'Alert("La Compra se actualizó correctamente.")
|
||||||
|
|
||||||
|
If Not ActualizarPrePolizaValidacion(ObjContabilidad, ObjCompra) Then
|
||||||
|
Retorno = False
|
||||||
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
If IdPoliza > 0 Then
|
If IdPoliza > 0 Then
|
||||||
If Not ObjContabilidad.UpdatePrePolizasDetalleBloquear(CvePrePoliza, True) Then
|
If Not ObjContabilidad.UpdatePrePolizasDetalleBloquear(CvePrePoliza, True) Then
|
||||||
@@ -9513,7 +9518,7 @@ Partial Class Compras_Compras
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If (NumeroReembolsoOriginal.Trim <> TxtRembolsoNumero.Text.Trim) Then
|
If Retorno AndAlso (NumeroReembolsoOriginal.Trim <> TxtRembolsoNumero.Text.Trim) Then
|
||||||
'NOTA. si hay un cambio en el reembolso, puede tener estas consideraciones.
|
'NOTA. si hay un cambio en el reembolso, puede tener estas consideraciones.
|
||||||
'1. no tenía comprobación y se ocupa relacionar, se deberá validar que no tenga pagos contabilizados
|
'1. no tenía comprobación y se ocupa relacionar, se deberá validar que no tenga pagos contabilizados
|
||||||
'2. se está cambiando de comprobación
|
'2. se está cambiando de comprobación
|
||||||
@@ -9937,7 +9942,7 @@ Partial Class Compras_Compras
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function ActualizarPrePoliza(ObjConta As ClsContabilidad, ObjCompra As ClsCompras) As Boolean
|
Private Function ActualizarPrePoliza(ByRef ObjConta As ClsContabilidad, ByRef ObjCompra As ClsCompras) As Boolean
|
||||||
|
|
||||||
Dim Retorno As Boolean = True, ErrorPrepoliza As Boolean = False
|
Dim Retorno As Boolean = True, ErrorPrepoliza As Boolean = False
|
||||||
Dim CvePlantillaPrePoliza As Integer
|
Dim CvePlantillaPrePoliza As Integer
|
||||||
@@ -10048,175 +10053,224 @@ Partial Class Compras_Compras
|
|||||||
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 228, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 228, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO
|
||||||
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 229, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 229, CveCompra, 1) Then ErrorPrepoliza = True 'PS NO RECIBIDO
|
||||||
|
|
||||||
|
If CveCompra > 0 And CveCompraFactura = 0 Then
|
||||||
'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 14, CveCompra, 1) Then ErrorPrepoliza = True
|
||||||
If DdlTipoCompra.SelectedValue = "10" Then
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 5, CveCompra, 1) Then ErrorPrepoliza = True
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN, importeMN, 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 311, CveCompra, 1) Then ErrorPrepoliza = True
|
||||||
ErrorPrepoliza = True
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 305, CveCompra, 1) Then ErrorPrepoliza = True
|
||||||
End If
|
If Not ObjConta.RemovePrePolizasDetalle(CvePrePoliza, 306, CveCompra, 1) Then ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If Not ErrorPrepoliza Then
|
||||||
|
If DdlTipoCompra.SelectedValue = "10" Then
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN, importeMN, 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
'OBTIENE METODO DE CONTABILIZACIÓN AL GUARDAR
|
|
||||||
Dim CveConceptoContableAlmacen As Integer = 0
|
|
||||||
If ObjCompra.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then
|
|
||||||
CveConceptoContableAlmacen = ObjCompra.DtResultados.FiltroPrimeroValor("CveConceptoContableAlmacen").ToEntero
|
|
||||||
|
|
||||||
If CveConceptoContableAlmacen = 0 AndAlso tUsaInventarios Then
|
'OBTIENE METODO DE CONTABILIZACIÓN AL GUARDAR
|
||||||
If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
Dim CveConceptoContableAlmacen As Integer = 0
|
||||||
If (CveImportacion > 0 Or CveFlete > 0) Then
|
If ObjCompra.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then
|
||||||
CveConceptoContableAlmacen = CveConceptoContableAlmacen
|
CveConceptoContableAlmacen = ObjCompra.DtResultados.FiltroPrimeroValor("CveConceptoContableAlmacen").ToEntero
|
||||||
|
|
||||||
|
If CveConceptoContableAlmacen = 0 AndAlso tUsaInventarios Then
|
||||||
|
If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
||||||
|
If (CveImportacion > 0 Or CveFlete > 0) Then
|
||||||
|
CveConceptoContableAlmacen = CveConceptoContableAlmacen
|
||||||
|
Else
|
||||||
|
CveConceptoContableAlmacen = 205
|
||||||
|
End If
|
||||||
|
If OCVinculada AndAlso DdlOCVinculaInv.Visible AndAlso Not (CveImportacion > 0 Or CveFlete > 0) Then
|
||||||
|
CveConceptoContableAlmacen = DdlOCVinculaInv.SelectedValue.ToEntero
|
||||||
|
End If
|
||||||
|
If UsuarioActual.CveEmpresa.Contiene(72, 80, 140, 141, 152) And Not (CveImportacion > 0 Or CveFlete > 0) Then 'se comento, RMF. 2020.08.19, no le hallo sentido
|
||||||
|
CveConceptoContableAlmacen = 205
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
CveConceptoContableAlmacen = 205
|
CveConceptoContableAlmacen = 225
|
||||||
End If
|
End If
|
||||||
If OCVinculada AndAlso DdlOCVinculaInv.Visible AndAlso Not (CveImportacion > 0 Or CveFlete > 0) Then
|
|
||||||
CveConceptoContableAlmacen = DdlOCVinculaInv.SelectedValue.ToEntero
|
|
||||||
End If
|
|
||||||
If UsuarioActual.CveEmpresa.Contiene(72, 80, 140, 141, 152) And Not (CveImportacion > 0 Or CveFlete > 0) Then 'se comento, RMF. 2020.08.19, no le hallo sentido
|
|
||||||
CveConceptoContableAlmacen = 205
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
CveConceptoContableAlmacen = 225
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
|
||||||
'AF
|
'AF
|
||||||
DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2")
|
DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2")
|
||||||
If DT.Rows.Count > 0 AndAlso DdlTipoComprobante.SelectedValue <> "NC" Then
|
If DT.Rows.Count > 0 AndAlso DdlTipoComprobante.SelectedValue <> "NC" Then
|
||||||
For Each Row2 As DataRow In DT.Rows
|
|
||||||
importeMovimiento = Row2("Total").ToString.ToDecimal
|
|
||||||
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
|
||||||
|
|
||||||
If importeMovimiento <> 0 Then
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, importeMovimiento, 49, Row2("CodAF").ToString, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
|
||||||
ErrorPrepoliza = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
'LIMPIA
|
|
||||||
importeMovimiento = 0
|
|
||||||
'COSTO ALMACEN
|
|
||||||
Dim DtAlmacenes As DataTable = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
|
|
||||||
If tUsaInventarios And CveConceptoContableAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
|
||||||
DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"})
|
|
||||||
'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
|
|
||||||
|
|
||||||
DT.AcceptChanges()
|
|
||||||
DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0")
|
|
||||||
If (DT.Rows.Count > 0) AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
|
||||||
For Each Row2 As DataRow In DT.Rows
|
For Each Row2 As DataRow In DT.Rows
|
||||||
|
importeMovimiento = Row2("Total").ToString.ToDecimal
|
||||||
importeMovimiento = TmpDT.SUM("Total", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
|
|
||||||
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
||||||
|
|
||||||
If importeMovimiento <> 0 Then
|
If importeMovimiento <> 0 Then
|
||||||
Dim SeContabiliza As Boolean = True
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, importeMovimiento, 49, Row2("CodAF").ToString, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
||||||
'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
|
|
||||||
If DdlTipoCompra.SelectedValue = "10" Then
|
|
||||||
SeContabiliza = False
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
|
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
|
||||||
'LIMPIA
|
'LIMPIA
|
||||||
importeMovimiento = 0
|
importeMovimiento = 0
|
||||||
|
'COSTO ALMACEN
|
||||||
|
Dim DtAlmacenes As DataTable = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
|
||||||
|
If tUsaInventarios And CveConceptoContableAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
||||||
|
DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"})
|
||||||
|
'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
|
||||||
|
|
||||||
'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ]
|
DT.AcceptChanges()
|
||||||
If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And CveConceptoContableAlmacen.Contiene(176, 205) Then
|
DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0")
|
||||||
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
|
If (DT.Rows.Count > 0) AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
||||||
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
For Each Row2 As DataRow In DT.Rows
|
||||||
|
|
||||||
If importeMovimiento <> 0 Then
|
importeMovimiento = TmpDT.SUM("Total", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal
|
||||||
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, CveConceptoContableAlmacen, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
|
||||||
ErrorPrepoliza = True
|
If importeMovimiento <> 0 Then
|
||||||
|
Dim SeContabiliza As Boolean = True
|
||||||
|
'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
|
||||||
|
If DdlTipoCompra.SelectedValue = "10" Then
|
||||||
|
SeContabiliza = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
|
||||||
'NC CON PRODUCTOS - CUENTA PUENTE
|
'LIMPIA
|
||||||
|
importeMovimiento = 0
|
||||||
|
|
||||||
If tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("Ant") And CveConceptoContableAlmacen.Contiene(225) Then
|
'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ]
|
||||||
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
|
If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And CveConceptoContableAlmacen.Contiene(176, 205) Then
|
||||||
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
|
||||||
|
|
||||||
If importeMovimiento <> 0 Then
|
|
||||||
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, CveConceptoContableAlmacen, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
|
||||||
ErrorPrepoliza = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
'GASTO
|
|
||||||
DT = TmpDT.Copy
|
|
||||||
'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
|
|
||||||
If DdlTipoCompra.SelectedValue <> "10" Or DdlTipoCompra.SelectedValue = "13" Then
|
|
||||||
For Each Dr As DataRow In DT.Rows
|
|
||||||
If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
|
|
||||||
Dr("CveAlmacen") = 0
|
|
||||||
End If
|
|
||||||
Dr.AcceptChanges()
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
DT.AcceptChanges()
|
|
||||||
DtAlmacenes.Dispose()
|
|
||||||
|
|
||||||
|
|
||||||
If DdlTipoCompra.SelectedValue.ToEntero <> 10 Then
|
|
||||||
'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS]
|
|
||||||
If tUsaInventarios And CveConceptoContableAlmacen > 0 Then
|
|
||||||
DT = DT.FiltraParametros("CveTipoPS <> 2")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim DTDistinct As DataTable = DT.Copy
|
|
||||||
If DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
|
||||||
DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto", "CveAlmacen"})
|
|
||||||
Else
|
|
||||||
'If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
|
|
||||||
' DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
|
|
||||||
'Else
|
|
||||||
DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
|
|
||||||
'End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
If DTDistinct.Rows.Count > 0 Then
|
|
||||||
For Each Row2 As DataRow In DTDistinct.Rows
|
|
||||||
|
|
||||||
'DETERMINA IMPORTE
|
|
||||||
'If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
|
|
||||||
' importeMovimiento = DT.SUM("Total", String.Format("ISNULL(TipoAF,0) <> 2 AND CveClasificacion = {0} AND CveSubProyecto = {1} AND ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
|
|
||||||
'Else
|
|
||||||
importeMovimiento = DT.SUM("Total", String.Format("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = {0} AND CveSubProyecto = {1} AND ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
|
|
||||||
'End If
|
|
||||||
|
|
||||||
If DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
|
||||||
importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen > 0 ").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen > 0").ToString.ToDecimal
|
|
||||||
End If
|
|
||||||
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
||||||
|
|
||||||
'AGREGA MOVIMIENTO
|
If importeMovimiento <> 0 Then
|
||||||
If importeMovimiento <> 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
|
||||||
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, 6, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero) Then
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, CveConceptoContableAlmacen, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
End If
|
||||||
|
|
||||||
|
'NC CON PRODUCTOS - CUENTA PUENTE
|
||||||
|
|
||||||
|
If tUsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("Ant") And CveConceptoContableAlmacen.Contiene(225) Then
|
||||||
|
importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal
|
||||||
|
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
||||||
|
|
||||||
|
If importeMovimiento <> 0 Then
|
||||||
|
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, CveConceptoContableAlmacen, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
'GASTO
|
||||||
|
DT = TmpDT.Copy
|
||||||
|
'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN
|
||||||
|
If DdlTipoCompra.SelectedValue <> "10" Or DdlTipoCompra.SelectedValue = "13" Then
|
||||||
|
For Each Dr As DataRow In DT.Rows
|
||||||
|
If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then
|
||||||
|
Dr("CveAlmacen") = 0
|
||||||
|
End If
|
||||||
|
Dr.AcceptChanges()
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
DT.AcceptChanges()
|
||||||
|
DtAlmacenes.Dispose()
|
||||||
|
|
||||||
|
|
||||||
|
If DdlTipoCompra.SelectedValue.ToEntero <> 10 Then
|
||||||
|
'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS]
|
||||||
|
If tUsaInventarios And CveConceptoContableAlmacen > 0 Then
|
||||||
|
DT = DT.FiltraParametros("CveTipoPS <> 2")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim DTDistinct As DataTable = DT.Copy
|
||||||
|
If DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
||||||
|
DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto", "CveAlmacen"})
|
||||||
|
Else
|
||||||
|
'If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
|
||||||
|
' DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
|
||||||
|
'Else
|
||||||
|
DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
|
||||||
|
'End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If DTDistinct.Rows.Count > 0 Then
|
||||||
|
For Each Row2 As DataRow In DTDistinct.Rows
|
||||||
|
|
||||||
|
'DETERMINA IMPORTE
|
||||||
|
'If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
|
||||||
|
' importeMovimiento = DT.SUM("Total", String.Format("ISNULL(TipoAF,0) <> 2 AND CveClasificacion = {0} AND CveSubProyecto = {1} AND ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
|
||||||
|
'Else
|
||||||
|
importeMovimiento = DT.SUM("Total", String.Format("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = {0} AND CveSubProyecto = {1} AND ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal
|
||||||
|
'End If
|
||||||
|
|
||||||
|
If DdlTipoCompra.SelectedValue.ToEntero = 10 Then
|
||||||
|
importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen > 0 ").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen > 0").ToString.ToDecimal
|
||||||
|
End If
|
||||||
|
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
|
||||||
|
|
||||||
|
'AGREGA MOVIMIENTO
|
||||||
|
If importeMovimiento <> 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then
|
||||||
|
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, 6, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
'LIMPIA
|
||||||
|
importeMovimiento = 0
|
||||||
|
|
||||||
|
If CveCompra > 0 And CveCompraFactura = 0 Then
|
||||||
|
|
||||||
|
Dim CveSubProyecto As Integer = TmpDT.MAX("CveSubProyecto").ToEntero
|
||||||
|
Dim IVAPorcentaje As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
|
||||||
|
Dim CveTipoSaldo As Integer = 1
|
||||||
|
|
||||||
|
Select Case DdlTipoComprobante.SelectedValue
|
||||||
|
Case "Fac"
|
||||||
|
CveTipoSaldo = 1
|
||||||
|
Exit Select
|
||||||
|
Case "NC"
|
||||||
|
CveTipoSaldo = 15
|
||||||
|
Exit Select
|
||||||
|
Case "Ant"
|
||||||
|
CveTipoSaldo = 11
|
||||||
|
Exit Select
|
||||||
|
Case "Dev"
|
||||||
|
CveTipoSaldo = 15
|
||||||
|
Exit Select
|
||||||
|
End Select
|
||||||
|
|
||||||
|
Dim ConceptoTipoTotal As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(CveTipoSaldo, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto)
|
||||||
|
|
||||||
|
If Not ErrorPrepoliza AndAlso TxtIVA.Text.ToDecimal > 0 Then
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TxtIVA.Text.ToDecimal, (TxtIVA.Text.ToDecimal * tipoCambioActual * Multiplicador), 14, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveSubProyecto:=CveSubProyecto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, PorcentajeImpuesto:=IVAPorcentaje) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not ErrorPrepoliza AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TxtTotal.Text.ToDecimal, (TxtTotal.Text.ToDecimal * tipoCambioActual * Multiplicador), ConceptoTipoTotal.CveConcepto, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveSubProyecto:=CveSubProyecto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95
|
||||||
|
|
||||||
|
|
||||||
'LIMPIA
|
|
||||||
importeMovimiento = 0
|
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -10226,9 +10280,91 @@ Partial Class Compras_Compras
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
''OIC 2025-04-16 El bloque de validacion se paso a la funcion ActualizarPrePolizaValidacion
|
||||||
|
'If DtPrePolizas IsNot Nothing Then
|
||||||
|
' For Each RowPrePoliza As DataRow In DtPrePolizas.FiltraParametros("", DistinctColumns:={"CvePrePoliza"}).Rows
|
||||||
|
' If ObjConta.ValidacionesPrePoliza(RowPrePoliza("CvePrePoliza").ToString().ToEntero(), UsuarioActual, Opcion:=4, AutoConta:=False) Then
|
||||||
|
' If ObjConta.ValorPolizaDescuadre > 0 Then
|
||||||
|
' ErrorPrepoliza = True
|
||||||
|
' Alert("Error en validacion de prepoliza cuadre", TipoMensaje.MsgAdvertencia)
|
||||||
|
' GuardaLogAD($"Compras/Compras-Actualizar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
|
||||||
|
' Exit For
|
||||||
|
' End If
|
||||||
|
' End If
|
||||||
|
' Next
|
||||||
|
'End If
|
||||||
|
|
||||||
|
If Not ErrorPrepoliza Then
|
||||||
|
Retorno = True
|
||||||
|
Else
|
||||||
|
Retorno = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Private Function ActualizarPrePolizaValidacion(ByRef ObjConta As ClsContabilidad, ByRef ObjCompra As ClsCompras) As Boolean
|
||||||
|
|
||||||
|
Dim Retorno As Boolean = True, ErrorPrepoliza As Boolean = False
|
||||||
|
Dim CvePlantillaPrePoliza As Integer
|
||||||
|
If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
|
||||||
|
CvePlantillaPrePoliza = 60
|
||||||
|
Else
|
||||||
|
CvePlantillaPrePoliza = 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
If (ArrAnticipos.Count > 0 And CveCompra > 0) Or (ArrAnticipos.Count > 0 And UsuarioActual.Empresa.UsaAC) Then
|
||||||
|
CvePlantillaPrePoliza = 52
|
||||||
|
End If
|
||||||
|
|
||||||
|
If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then
|
||||||
|
|
||||||
|
If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then
|
||||||
|
CvePlantillaPrePoliza = 60
|
||||||
|
Else
|
||||||
|
CvePlantillaPrePoliza = 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim DtPrePolizas As DataTable = Nothing
|
||||||
|
|
||||||
|
If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then
|
||||||
|
For Each Row As DataRow In ObjConta.DtResultados.Rows
|
||||||
|
|
||||||
|
Dim ConceptoContable As Integer = Row("CveConcepto").ToString.ToEntero
|
||||||
|
|
||||||
|
Select Case ConceptoContable
|
||||||
|
|
||||||
|
Case 6
|
||||||
|
|
||||||
|
Dim CveProveedorConcepto As Integer = 0, CveIE As Integer = 0, CveCreditoDetalle As Integer = 0
|
||||||
|
Dim ConceptoPersonal As String = "", Concepto As String = ""
|
||||||
|
Dim tUsaInventarios As Boolean = UsuarioActual.Empresa.UsaInventarios
|
||||||
|
If (UsuarioActual.CveEmpresa.Contiene(13, 83, 7, 11, 12, 122, 145)) Then tUsaInventarios = False
|
||||||
|
|
||||||
|
If Not ObjConta.GetPrePolizasDetalleCompra(CveCompra, UsuarioActual.CveEmpresa) Then
|
||||||
|
ErrorPrepoliza = True
|
||||||
|
Else
|
||||||
|
DtPrePolizas = ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (6,68,49,205,176,5,305,311)")
|
||||||
|
|
||||||
|
If DtPrePolizas.Rows.Count > 0 Then
|
||||||
|
Dim drr As DataRow = ObjConta.DtResultados.FiltraParametros("CveConceptoContable in(6,68,49,205,176,5,305,311)").FiltroPrimero("")
|
||||||
|
CveProveedorConcepto = drr("CveProveedor").ToString.ToEntero
|
||||||
|
CveIE = drr("CveIE").ToString.ToEntero
|
||||||
|
CveCreditoDetalle = drr("CveCreditoDetalle").ToString.ToEntero
|
||||||
|
Concepto = drr("Concepto").ToString
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Select
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
If DtPrePolizas IsNot Nothing Then
|
If DtPrePolizas IsNot Nothing Then
|
||||||
For Each RowPrePoliza As DataRow In DtPrePolizas.FiltraParametros("", DistinctColumns:={"CvePrePoliza"}).Rows
|
For Each RowPrePoliza As DataRow In DtPrePolizas.FiltraParametros("", DistinctColumns:={"CvePrePoliza"}).Rows
|
||||||
If ObjConta.ValidacionesPrePoliza(RowPrePoliza("CvePrePoliza").ToString().ToEntero(), UsuarioActual, Opcion:=4, AutoConta:=False) Then
|
If Not ObjConta.ValidacionesPrePoliza(RowPrePoliza("CvePrePoliza").ToString().ToEntero(), UsuarioActual, Opcion:=4, AutoConta:=False) Then
|
||||||
If ObjConta.ValorPolizaDescuadre > 0 Then
|
If ObjConta.ValorPolizaDescuadre > 0 Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
Alert("Error en validacion de prepoliza cuadre", TipoMensaje.MsgAdvertencia)
|
Alert("Error en validacion de prepoliza cuadre", TipoMensaje.MsgAdvertencia)
|
||||||
@@ -10248,6 +10384,7 @@ Partial Class Compras_Compras
|
|||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Protected Sub ImgActualizarProyecto_Click(sender As Object, e As EventArgs) Handles ImgActualizarProyecto.Click
|
Protected Sub ImgActualizarProyecto_Click(sender As Object, e As EventArgs) Handles ImgActualizarProyecto.Click
|
||||||
'actualizo los proyectos
|
'actualizo los proyectos
|
||||||
Dim Compra As New ClsCompras
|
Dim Compra As New ClsCompras
|
||||||
@@ -19837,6 +19974,10 @@ Partial Class Compras_Compras
|
|||||||
Dim ObjContabilidad As New ClsContabilidad(ObjCompra.IniciaTransacSQL)
|
Dim ObjContabilidad As New ClsContabilidad(ObjCompra.IniciaTransacSQL)
|
||||||
|
|
||||||
Dim Estatus As Boolean = ActualizarPrePoliza(ObjContabilidad, ObjCompra)
|
Dim Estatus As Boolean = ActualizarPrePoliza(ObjContabilidad, ObjCompra)
|
||||||
|
If Estatus Then
|
||||||
|
Estatus = ActualizarPrePolizaValidacion(ObjContabilidad, ObjCompra)
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
If Estatus Then
|
If Estatus Then
|
||||||
ObjCompra.Commit()
|
ObjCompra.Commit()
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ Partial Class Compras_RepRembolsoComprobaciones
|
|||||||
|
|
||||||
DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
|
DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
|
||||||
DdlPersonal.DataBind()
|
DdlPersonal.DataBind()
|
||||||
txtFechaI.Text = NowADS.AddYears(-1).ToShortDateString
|
txtFechaI.Text = NowADS.AddMonths(-3).ToShortDateString
|
||||||
|
|
||||||
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto, "Todos")
|
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto, "Todos")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user