-- costos jam/2019

This commit is contained in:
rrene
2020-06-14 19:52:51 -07:00
parent a3e3d47ab4
commit 7099e4d380
3 changed files with 457 additions and 427 deletions

View File

@@ -850,7 +850,7 @@ Partial Class Inventarios_RecepcionAlmacen
TipoCambio = ObjCompras.DtResultados.Rows(0)("TipoCambio").ToString.ToDecimal
TipoMovimiento = If(ObjCompras.DtResultados.Rows(0)("EstatusAlmacen").ToString.ToEntero = 1, 2, 1)
TipoMovimiento = If(ObjCompras.DtResultados.Rows(0)("TipoDocto").ToString.Contiene("NC", "DEV"), 3, TipoMovimiento)
TotalCompraOC = ObjCompras.DtResultados.Rows(0)("SubTotal").ToString.ToDecimal
TotalCompraOC = ObjCompras.DtResultados.Rows(0)("SubTotal").ToString.ToDecimal - ObjCompras.DtResultados.Rows(0)("Descuentos").ToString.ToDecimal
CveTipoCompra = ObjCompras.DtResultados.Rows(0)("CveTipoCompra").ToString.ToEntero
If TipoMovimiento = 3 Then
@@ -1259,6 +1259,9 @@ Partial Class Inventarios_RecepcionAlmacen
e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero
e.Row.FCTextBox("TbCantidadF").Enabled = False
End If
If UsuarioActual.CveRol = 1 Then 'carga la cantidad con el rol AD
e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero
End If
End If
If CBool(e.Row.DBCampo("AplicaSeccion")) Then
@@ -2155,6 +2158,7 @@ Partial Class Inventarios_RecepcionAlmacen
Private Sub GuardaCompraOC()
Dim CveMovimiento As Integer
Dim CveMovimientoOriginal As Integer
' Dim CveMovimientoS
Dim InvFolio As String = ""
@@ -2203,6 +2207,7 @@ Partial Class Inventarios_RecepcionAlmacen
CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, TipoCambio),
MovimientoFijo:=If(TipoMovimiento = 2, True, False), Remision:=TxtRemision.Text, Modulo:="RA/G1")
If CveMovimiento > 0 Then
CveMovimientoOriginal = CveMovimiento
InvFolio = ObjInventario.Folio.ToString
Dim DtDetalle As New DataTable
Dim DtDetalleLote As New DataTable
@@ -2283,7 +2288,7 @@ Partial Class Inventarios_RecepcionAlmacen
''VALIDACIÓN DE IMPORTES INGRESADOS VS LA COMPRA U OC
If Not UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If Not ErrorMovInv AndAlso RecibidaCompleta AndAlso ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
If Not ErrorMovInv AndAlso RecibidaCompleta AndAlso ObjInventario.GetMovimientosDetalle(CveMovimientoOriginal, UsuarioActual.CveEmpresa) Then
Dim dtt As DataTable = ObjInventario.DtResultados
Dim tTotalInsertado As Decimal = dtt.SUMD("TotalOriginal")
If CveTipoCompra = 8 Then 'entrada almacen con costo indirecto cargado en la misma compra
@@ -2297,6 +2302,8 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
Dim ImporteIngresoAdicional As Decimal = 0
'SI RECEPCION VALIDA [ENTREGADIRECTA, APARTADOS, AC]
If TipoMovimiento = 1 Then
'ENTREGA DIRECTA
@@ -2410,45 +2417,11 @@ Partial Class Inventarios_RecepcionAlmacen
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
Dim DtPSVirtual As New DataTable("DtTamanios")
DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
Dim DtComprasDetalle As DataTable = Nothing
Dim DtTamanios As DataTable = Nothing
If ObjCompras.GetCompraDetalle(CveCompraSurtir) Then
DtComprasDetalle = ObjCompras.DtResultados.Copy()
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
DtPSVirtual = ObjInventario.DtResultados
End If
If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DtTamanios = ObjAcum.DtResultados.Copy()
End If
For Each GvRow As GridViewRow In GvInv.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
For Each Tam As DataRow In DtTamanios.Rows
If Tam("CveTamaño").ToString() = GvRow.DataKey("CveTamaño") Then
Dim CvePSCargo = Tam("CvePSCargo").ToString().ToEntero()
Dim RowCompraDetalle = DtComprasDetalle.FiltroPrimero($"CvePS = {CvePSCargo}")
If RowCompraDetalle IsNot Nothing Then
Dim Row As DataRow = DtPSVirtual.NewRow()
Row("CvePS") = CvePSCargo
Row("Cantidad") = GvRow.FCTextBox("TbCantidadF").Text.ToDecimal()
Row("PU") = RowCompraDetalle("PU").ToString().ToDecimal()
Row("CveUM") = GvRow.DataKey("CveUM").ToEntero()
DtPSVirtual.Rows.Add(Row)
End If
End If
Next
End If
Next
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then
Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero()
@@ -2461,8 +2434,8 @@ Partial Class Inventarios_RecepcionAlmacen
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal()
Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
@@ -2470,6 +2443,12 @@ Partial Class Inventarios_RecepcionAlmacen
Exit For
End If
Next
If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
ImporteIngresoAdicional = ObjInventario.DtResultados.SUMD("TotalOriginal")
End If
Else
ErrorMovInv = True
End If
End If
@@ -2549,8 +2528,6 @@ Partial Class Inventarios_RecepcionAlmacen
Else
'VIRTUAL
If CveTipoCompra = 9 And UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
@@ -2618,6 +2595,27 @@ Partial Class Inventarios_RecepcionAlmacen
End If
''VALIDACIÓN DE IMPORTES INGRESADOS VS LA COMPRA U OC
'If Not UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If Not ErrorMovInv AndAlso RecibidaCompleta Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoOriginal, UsuarioActual.CveEmpresa) Then
Dim dtt As DataTable = ObjInventario.DtResultados
Dim tTotalInsertado As Decimal = dtt.SUMD("TotalOriginal") + ImporteIngresoAdicional
If CveTipoCompra = 8 Then 'entrada almacen con costo indirecto cargado en la misma compra
tTotalInsertado = dtt.SUMD("Total") ' está incluido el costo indirecto en la factura
End If
If Math.Round(TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1), 2) <> Math.Round(tTotalInsertado, 2) Then
ErrorMovInv = True
Alert("La Entrada no coincide con el valor del documento." & Math.Round(TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1), 2) & " -" & tTotalInsertado.RoundSQL.ToString, TipoMensaje.MsgError)
GuardaLog("La Entrada no coincide con el valor del documento." & Math.Round(TotalCompraOC * If(TipoCambio > 1, TipoCambio, 1), 2) & " -" & tTotalInsertado.RoundSQL.ToString)
End If
Else
ErrorMovInv = True
End If
End If
' End If
'ACTUALIZA ESTATUS ALMACEN
If TipoMovimiento = 2 Then
If Not ObjCompras.UpdateEstatusAlmacen(CveCompraSurtir, 0) Then
@@ -2631,212 +2629,212 @@ Partial Class Inventarios_RecepcionAlmacen
End If
'PREPOLIZA - SOLO CUANDO SEA RECEPCIÓN
If TipoMovimiento = 1 AndAlso ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
Dim DtCostos As DataTable = Nothing
Dim ValorInventario As Decimal = 0
DtCostos = ObjInventario.DtResultados
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalCostoExtranjero As Decimal = DtCostos.SUM("TotalExtranjero").ToDecimal
If TipoMovimiento = 1 AndAlso Not ErrorMovInv Then
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
'VARIABLES
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
Dim IdCtaContableRecepcion = -1
Dim IdCtaContableRecepcionME = -1
Dim IdCtaContableRecepcionComplementaria = -1
Dim Fecha As Date = Now
Dim CveProveedor As Integer = -1
Dim ProveedorNombre As String = ""
Dim SerieFolio As String = ""
Dim CveConceptoContableCosto = -1
Dim CveConceptoContableCostoME = -1
Dim CveConceptoContableCostoComplementaria = -1
Dim UsaComplementariaFleteImportaciones As Boolean = False
If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaFleteImportaciones = False
Dim DtCostos As DataTable = Nothing
Dim ValorInventario As Decimal = 0
DtCostos = ObjInventario.DtResultados
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalCostoExtranjero As Decimal = DtCostos.SUM("TotalExtranjero").ToDecimal
If DtCostos.Rows.Count > 0 Then
If CveCompraSurtir > 0 Then
If ObjCompras.GetCompras(CveCompraSurtir, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
'Fecha = ObjCompras.DtResultados(0)("Fecha").ToString.ToDate
Fecha = TxtFecha.Text.ToDate
CveProveedor = ObjCompras.DtResultados(0)("CveProveedor").ToString.ToEntero
ProveedorNombre = ObjCompras.DtResultados(0)("RazonSocial").ToString
SerieFolio = $"Compra: {ObjCompras.DtResultados(0)("SerieFolio").ToString}"
CveConceptoContableCosto = 205
CveConceptoContableCostoME = 230
CveConceptoContableCostoComplementaria = 231
'VARIABLES
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
Dim IdCtaContableRecepcion = -1
Dim IdCtaContableRecepcionME = -1
Dim IdCtaContableRecepcionComplementaria = -1
Dim Fecha As Date = Now
Dim CveProveedor As Integer = -1
Dim ProveedorNombre As String = ""
Dim SerieFolio As String = ""
Dim CveConceptoContableCosto = -1
Dim CveConceptoContableCostoME = -1
Dim CveConceptoContableCostoComplementaria = -1
Dim UsaComplementariaFleteImportaciones As Boolean = False
If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaFleteImportaciones = False
If ObjConta.GetRetCuenta(205, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcion = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
If DtCostos.Rows.Count > 0 Then
If CveCompraSurtir > 0 Then
If ObjCompras.GetCompras(CveCompraSurtir, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
'Fecha = ObjCompras.DtResultados(0)("Fecha").ToString.ToDate
Fecha = TxtFecha.Text.ToDate
CveProveedor = ObjCompras.DtResultados(0)("CveProveedor").ToString.ToEntero
ProveedorNombre = ObjCompras.DtResultados(0)("RazonSocial").ToString
SerieFolio = $"Compra: {ObjCompras.DtResultados(0)("SerieFolio").ToString}"
CveConceptoContableCosto = 205
CveConceptoContableCostoME = 230
CveConceptoContableCostoComplementaria = 231
If ObjConta.GetRetCuenta(205, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcion = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(230, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(231, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
Else
ErrorMovInv = True
End If
ElseIf CveOCSurtir > 0 Then
If ObjOC.GetOC(CveOCSurtir, UsuarioActual.CveEmpresa) Then
'Fecha = ObjOC.DtResultados(0)("Fecha").ToString.ToDate
Fecha = TxtFecha.Text.ToDate
CveProveedor = ObjOC.DtResultados(0)("CveProveedor").ToString.ToEntero
ProveedorNombre = ObjOC.DtResultados(0)("RazonSocial").ToString
SerieFolio = String.Format("{0} OC# {1} - Almacén# {2}", ProveedorNombre, ObjOC.DtResultados(0)("Folio"), ObjInventario.Folio)
CveConceptoContableCosto = 176
CveConceptoContableCostoME = 228
CveConceptoContableCostoComplementaria = 229
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(230, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaFleteImportaciones = True
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcion = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
Else
ErrorMovInv = True
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(231, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
Else
ErrorMovInv = True
End If
ElseIf CveOCSurtir > 0 Then
If ObjOC.GetOC(CveOCSurtir, UsuarioActual.CveEmpresa) Then
'Fecha = ObjOC.DtResultados(0)("Fecha").ToString.ToDate
Fecha = TxtFecha.Text.ToDate
CveProveedor = ObjOC.DtResultados(0)("CveProveedor").ToString.ToEntero
ProveedorNombre = ObjOC.DtResultados(0)("RazonSocial").ToString
SerieFolio = String.Format("{0} OC# {1} - Almacén# {2}", ProveedorNombre, ObjOC.DtResultados(0)("Folio"), ObjInventario.Folio)
CveConceptoContableCosto = 176
CveConceptoContableCostoME = 228
CveConceptoContableCostoComplementaria = 229
If UsuarioActual.CveEmpresa = 119 Then UsaComplementariaFleteImportaciones = True
If Not ErrorMovInv Then
Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero
CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen", 74, TotalCosto, TotalCosto, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePoliza > 0 Then
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveSubProyecto:=CveSubProyecto, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcion = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
'AGREGA POR CONCEPTO POR CVEOCDETALLE
If CveOCSurtir > 0 Then
Dim TotalCostoDetalle As Decimal = 0
Dim TotalCostoAcumulado As Decimal = 0
Dim cont As Integer = 1
For Each Dr As DataRow In DtCostos.Rows
TotalCostoDetalle = (Dr("Total").ToString.ToDecimal)
TotalCostoExtranjero = Dr("TotalExtranjero").ToString.ToDecimal
TotalCostoAcumulado += Math.Round(TotalCostoDetalle, 2)
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
'si es el último movimiento verifica los importes que sean igual
If cont = DtCostos.Rows.Count AndAlso (Math.Round(TotalCosto, 2) <> Math.Round(TotalCostoAcumulado, 2)) Then
TotalCostoDetalle = TotalCostoDetalle + (Math.Round(TotalCosto, 2) - Math.Round(TotalCostoAcumulado, 2))
TotalCostoExtranjero = TotalCostoExtranjero + (Math.Round(TotalCosto, 2) - Math.Round(TotalCostoAcumulado, 2))
End If
If UsaComplementariaFleteImportaciones AndAlso ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then
IdCtaContableRecepcionComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
Else
ErrorMovInv = True
End If
End If
If Not ErrorMovInv Then
Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero
CvePrePoliza = ObjConta.AddPrePolizas("Inventario/RecepcionAlmacen", 74, TotalCosto, TotalCosto, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePoliza > 0 Then
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveCompra:=CveCompraSurtir, CveSubProyecto:=CveSubProyecto, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
'AGREGA POR CONCEPTO POR CVEOCDETALLE
If CveOCSurtir > 0 Then
Dim TotalCostoDetalle As Decimal = 0
Dim TotalCostoAcumulado As Decimal = 0
Dim cont As Integer = 1
For Each Dr As DataRow In DtCostos.Rows
TotalCostoDetalle = (Dr("Total").ToString.ToDecimal)
TotalCostoExtranjero = Dr("TotalExtranjero").ToString.ToDecimal
TotalCostoAcumulado += Math.Round(TotalCostoDetalle, 2)
'si es el último movimiento verifica los importes que sean igual
If cont = DtCostos.Rows.Count AndAlso (Math.Round(TotalCosto, 2) <> Math.Round(TotalCostoAcumulado, 2)) Then
TotalCostoDetalle = TotalCostoDetalle + (Math.Round(TotalCosto, 2) - Math.Round(TotalCostoAcumulado, 2))
TotalCostoExtranjero = TotalCostoExtranjero + (Math.Round(TotalCosto, 2) - Math.Round(TotalCostoAcumulado, 2))
End If
If CveMoneda <> 1 AndAlso UsaComplementariaFleteImportaciones Then
'COMPLEMENTARIA
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoME, SerieFolio, Fecha, IdCtaContableRecepcionME, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveSubProyecto:=CveSubProyecto, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoDetalle - TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoComplementaria, SerieFolio, Fecha, IdCtaContableRecepcionComplementaria, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveSubProyecto:=CveSubProyecto, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoDetalle - TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
If CveMoneda <> 1 AndAlso UsaComplementariaFleteImportaciones Then
'COMPLEMENTARIA
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoME, SerieFolio, Fecha, IdCtaContableRecepcionME, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveSubProyecto:=CveSubProyecto, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoDetalle - TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoComplementaria, SerieFolio, Fecha, IdCtaContableRecepcionComplementaria, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveSubProyecto:=CveSubProyecto, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoDetalle - TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
Else
ErrorMovInv = True
Exit For
End If
Else
ErrorMovInv = True
Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoDetalle, SerieFolio, CveConceptoContableCosto, SerieFolio, Fecha, IdCtaContableRecepcion, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveSubProyecto:=CveSubProyecto, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoDetalle, CveCuenta:=-1, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
End If
Else
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoDetalle, SerieFolio, CveConceptoContableCosto, SerieFolio, Fecha, IdCtaContableRecepcion, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveSubProyecto:=CveSubProyecto, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoDetalle, CveCuenta:=-1, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
End If
cont = cont + 1
cont = cont + 1
Next
Else
TotalCosto = DtCostos.SUMD("Total").RoundSQL
TotalCostoExtranjero = DtCostos.SUMD("TotalExtranjero")
If CveMoneda <> 1 AndAlso UsaComplementariaFleteImportaciones Then
'COMPLEMENTARIA
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoME, SerieFolio, Fecha, IdCtaContableRecepcionME, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCosto - TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoComplementaria, SerieFolio, Fecha, IdCtaContableRecepcionComplementaria, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto - TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal) Then
ErrorMovInv = True
End If
Else
ErrorMovInv = True
End If
Next
Else
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCosto, SerieFolio, CveConceptoContableCosto, SerieFolio, Fecha, IdCtaContableRecepcion, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=-1) Then
ErrorMovInv = True
TotalCosto = DtCostos.SUMD("Total").RoundSQL
TotalCostoExtranjero = DtCostos.SUMD("TotalExtranjero")
If CveMoneda <> 1 AndAlso UsaComplementariaFleteImportaciones Then
'COMPLEMENTARIA
If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoME, SerieFolio, Fecha, IdCtaContableRecepcionME, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCosto - TotalCostoExtranjero, SerieFolio, CveConceptoContableCostoComplementaria, SerieFolio, Fecha, IdCtaContableRecepcionComplementaria, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto - TotalCostoExtranjero, ImporteME:=TotalCostoExtranjero, TipoCambio:=TipoCambio.ToDecimal) Then
ErrorMovInv = True
End If
Else
ErrorMovInv = True
End If
Else
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCosto, SerieFolio, CveConceptoContableCosto, SerieFolio, Fecha, IdCtaContableRecepcion, -1, CveCompra:=CveCompraSurtir, CveOC:=CveOCSurtir, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=TotalCosto, CveCuenta:=-1) Then
ErrorMovInv = True
End If
End If
End If
End If
Else
ErrorMovInv = True
End If
Else
ErrorMovInv = True
End If
End If
If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
If ObjConta.ValorPolizaDescuadre > 0 Then
GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
MensajeError = "El Movimiento presenta una diferencia en el registro."
ErrorMovInv = True
End If
End If
'CONTABILIZAR - UNIFICAR Y SIMPLIFICAR CON PP DE LA COMPRA
If Not ErrorMovInv Then
If CvePrePolizaCompra > 0 Then
If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then
If Not ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaCompra) Then
Else
ErrorMovInv = True
MensajeError = "Error al unificar los conceptos contables"
End If
End If
End If
If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
ErrorMovInv = True
MensajeError = "Error al simplificar los conceptos contables"
End If
End If
If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
If ObjContaContPAQ Is Nothing Then
ObjContaContPAQ = New ClsContPAQi(UsuarioActual.Empresa)
ObjContaContPAQ.IniciaTransacSQL()
End If
If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaContPAQ) Then
MensajeContabilidad = $"<br>Movimiento contabilizado en el folio: <b><a class='Texto' href = '/Contabilidad/RegPoliza.aspx?IdPoliza={ObjConta.ContaIdPoliza}'>{ObjConta.ContaFolio}</a></b><br>"
Else
ErrorMovInv = True
MensajeError = "Error al contabilizar los conceptos contables"
End If
End If
If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
If ObjConta.ValorPolizaDescuadre > 0 Then
GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
MensajeError = "El Movimiento presenta una diferencia en el registro."
ErrorMovInv = True
End If
End If
'CONTABILIZAR - UNIFICAR Y SIMPLIFICAR CON PP DE LA COMPRA
If Not ErrorMovInv Then
If CvePrePolizaCompra > 0 Then
If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then
If Not ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaCompra) Then
ErrorMovInv = True
MensajeError = "Error al unificar los conceptos contables"
End If
End If
End If
If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
ErrorMovInv = True
MensajeError = "Error al simplificar los conceptos contables"
End If
End If
If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
If ObjContaContPAQ Is Nothing Then
ObjContaContPAQ = New ClsContPAQi(UsuarioActual.Empresa)
ObjContaContPAQ.IniciaTransacSQL()
End If
If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaContPAQ) Then
MensajeContabilidad = $"<br>Movimiento contabilizado en el folio: <b><a class='Texto' href = '/Contabilidad/RegPoliza.aspx?IdPoliza={ObjConta.ContaIdPoliza}'>{ObjConta.ContaFolio}</a></b><br>"
Else
ErrorMovInv = True
MensajeError = "Error al contabilizar los conceptos contables"
End If
End If
End If
End If
Else
ErrorMovInv = True
MensajeError = "Error al obtener movimientos"
End If
Else
ErrorMovInv = True
MensajeError = "Error al obtener movimientos"
End If
'PREPOLIZA - NC
If TipoMovimiento = 3 Then
If TipoMovimiento = 3 AndAlso Not ErrorMovInv Then
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
Dim DtCostos As DataTable = Nothing
DtCostos = ObjInventario.DtResultados
Dim TotalCosto As Decimal = DtCostos.SUM("Total").ToDecimal
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalNC As Decimal = 0
Dim CveClasificacionDifCostoNC = -1
@@ -2850,11 +2848,9 @@ Partial Class Inventarios_RecepcionAlmacen
Dim IdCtaContableClasificacion As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacionDifCostoNC}").ToEntero
Dim CveCuentaClasificacion As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {CveClasificacionDifCostoNC}").ToEntero
TotalCosto = Math.Round(TotalCosto, 2)
TotalNC = Math.Round(TotalNC, 2)
TotalNC = TotalNC.RoundSQL
Dim DifCostoNC = Math.Round(TotalCosto - TotalNC, 2)
'VARIABLES
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero