diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb
index e13094576..3978a91c9 100644
--- a/OC/OC.aspx.vb
+++ b/OC/OC.aspx.vb
@@ -8046,7 +8046,7 @@ Partial Class OC
Dim CveMovimientoAlmacen As Integer = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero
Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal
-
+ Dim ConservaPU As Boolean = chkMonedaPU.Checked
If CveMonedaOC = 2 Then
CveMonedaOC = 1
@@ -8073,28 +8073,47 @@ Partial Class OC
Exit For
End If
Else
+ ''-pesos a dólares
CveMonedaOC = 2
TCAjuste = TxtTCCambioMoneda.Text.ToDecimal
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe176, ImporteME:=-Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe176, ImporteME:=-Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
ErrorPrepoliza = True
Exit For
Else
- Importe228 = (Importe176 / TCAjuste)
+ Dim TCAjustePU As Decimal = TCAjuste
+ If ConservaPU Then
+ TCAjustePU = 1
+ End If
+
+ Importe228 = (Importe176 / TCAjustePU)
Importe229 = (Importe228 * TCAjuste - Importe228).RoundSQL
Importe228 = Importe228.RoundSQL(3) ' se redondea a 3 digitos, por la conversion, y no afecta al CK de complementaria
- Dim dift As Decimal = Importe176 - Importe228 - Importe229
- If dift <> 0 Then Importe229 += dift
- PU = Importe176PU / TCAjuste
+ Dim difcosto As Decimal = Importe176 - Importe228 - Importe229
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe228, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe229, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ PU = Importe176PU
+ If Not ConservaPU Then PU = Importe176PU / TCAjuste
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe228, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe229, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
ErrorPrepoliza = True
Exit For
Else
+ If difcosto <> 0 Then
+ Dim tcveSub As Integer = DtDetalle.MAX("CveSubProyecto").ToEntero
+ Dim tcveClasif As Integer = DtDetalle.MAX("CveClasificacion").ToEntero
+ Dim IdCtaContable69 As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {tcveClasif}").ToString.ToEntero
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, difcosto, lblFolio.Text, 69, Concepto, Now, IdCtaContable69, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=difcosto, ImporteME:=difcosto, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveSubProyecto:=tcveSub, CveClasificacion:=tcveClasif, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
If Not ObjOC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, PU, UsuarioActual.CveUsuario) Then
Retorno = False
Exit For
End If
+
End If
Else
ErrorPrepoliza = True