예제 #1
0
        public OOB.ResultadoAuto Producto_Movimiento_Cargo_Insertar(OOB.LibInventario.Movimiento.Cargo.Insertar.Ficha ficha)
        {
            var rt = new OOB.ResultadoAuto();

            var xficha = ficha.mov;
            var movDTO = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaMov()
            {
                autoConcepto          = xficha.autoConcepto,
                autoDepositoDestino   = xficha.autoDepositoDestino,
                autoDepositoOrigen    = xficha.autoDepositoOrigen,
                autoRemision          = xficha.autoRemision,
                autorizado            = xficha.autorizado,
                autoUsuario           = xficha.autoUsuario,
                cierreFtp             = xficha.cierreFtp,
                codConcepto           = xficha.codConcepto,
                codDepositoDestino    = xficha.codDepositoDestino,
                codDepositoOrigen     = xficha.codDepositoOrigen,
                codigoSucursal        = xficha.codigoSucursal,
                codUsuario            = xficha.codUsuario,
                desConcepto           = xficha.desConcepto,
                desDepositoDestino    = xficha.desDepositoDestino,
                desDepositoOrigen     = xficha.desDepositoOrigen,
                documentoNombre       = xficha.documentoNombre,
                estacion              = xficha.estacion,
                estatusAnulado        = xficha.estatusAnulado,
                estatusCierreContable = xficha.estatusCierreContable,
                nota         = xficha.nota,
                renglones    = xficha.renglones,
                situacion    = xficha.situacion,
                tipo         = xficha.tipo,
                total        = xficha.total,
                usuario      = xficha.usuario,
                factorCambio = xficha.factorCambio,
                montoDivisa  = xficha.montoDivisa,
            };
            var detDTO = ficha.movDetalles.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaMovDetalle()
                {
                    autoDepartamento = s.autoDepartamento,
                    autoGrupo        = s.autoGrupo,
                    autoProducto     = s.autoProducto,
                    cantidad         = s.cantidad,
                    cantidadBono     = s.cantidadBono,
                    cantidadUnd      = s.cantidadUnd,
                    categoria        = s.categoria,
                    codigoProducto   = s.codigoProducto,
                    contEmpaque      = s.contEmpaque,
                    costoCompra      = s.costoCompra,
                    costoUnd         = s.costoUnd,
                    decimales        = s.decimales,
                    empaque          = s.empaque,
                    estatusAnulado   = s.estatusAnulado,
                    estatusUnidad    = s.estatusUnidad,
                    nombreProducto   = s.nombreProducto,
                    signo            = s.signo,
                    tipo             = s.tipo,
                    total            = s.total,
                };
                return(dt);
            }).ToList();
            var kardexDTO = ficha.movKardex.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaMovKardex()
                {
                    autoConcepto   = s.autoConcepto,
                    autoDeposito   = s.autoDeposito,
                    autoProducto   = s.autoProducto,
                    cantidad       = s.cantidad,
                    cantidadBono   = s.cantidadBono,
                    cantidadUnd    = s.cantidadUnd,
                    codigoMov      = s.codigoMov,
                    codigoSucursal = s.codigoSucursal,
                    costoUnd       = s.costoUnd,
                    entidad        = s.entidad,
                    estatusAnulado = s.estatusAnulado,
                    modulo         = s.modulo,
                    nota           = s.nota,
                    precioUnd      = s.precioUnd,
                    siglasMov      = s.siglasMov,
                    signoMov       = s.signoMov,
                    total          = s.total,
                    codigoConcepto = s.codigoConcepto,
                    nombreConcepto = s.nombreConcepto,
                    codigoDeposito = s.codigoDeposito,
                    nombreDeposito = s.nombreDeposito,
                };
                return(dt);
            }).ToList();
            var depDTO = ficha.movDeposito.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaMovDeposito()
                {
                    autoProducto   = s.autoProducto,
                    nombreProducto = s.nombreProducto,
                    autoDeposito   = s.autoDeposito,
                    cantidadUnd    = s.cantidadUnd,
                    nombreDeposito = s.nombreDeposito,
                };
                return(dt);
            }).ToList();
            var listPrdCosto = ficha.prdCosto.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrdCosto()
                {
                    autoProducto        = s.autoProducto,
                    cantidadEntranteUnd = s.cantidadEntranteUnd,
                    costoDivisa         = s.costoDivisa,
                    costoFinal          = s.costoFinal,
                    costoFinalUnd       = s.costoFinalUnd,
                };
                return(dt);
            }).ToList();
            var listPrdCostoHistorico = ficha.prdCostoHistorico.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrdCostoHistorico()
                {
                    autoProducto = s.autoProducto,
                    costo        = s.costo,
                    divisa       = s.divisa,
                    nota         = s.nota,
                    tasaCambio   = s.tasaCambio,
                    serie        = s.serie,
                };
                return(dt);
            }).ToList();
            var listPrdPrecio = ficha.prdPrecio.Select(s =>
            {
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio p1 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio p2 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio p3 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio p4 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio p5 = null;
                if (s.precio_1 != null)
                {
                    p1 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                    {
                        precioNeto = s.precio_1.precioNeto, precio_divisa_full = s.precio_1.precio_divisa_full
                    };
                }
                ;
                if (s.precio_2 != null)
                {
                    p2 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                    {
                        precioNeto = s.precio_2.precioNeto, precio_divisa_full = s.precio_2.precio_divisa_full
                    };
                }
                ;
                if (s.precio_3 != null)
                {
                    p3 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                    {
                        precioNeto = s.precio_3.precioNeto, precio_divisa_full = s.precio_3.precio_divisa_full
                    };
                }
                ;
                if (s.precio_4 != null)
                {
                    p4 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                    {
                        precioNeto = s.precio_4.precioNeto, precio_divisa_full = s.precio_4.precio_divisa_full
                    };
                }
                ;
                if (s.precio_5 != null)
                {
                    p5 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                    {
                        precioNeto = s.precio_5.precioNeto, precio_divisa_full = s.precio_5.precio_divisa_full
                    };
                }
                ;
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecio()
                {
                    autoProducto = s.autoProducto,
                    precio_1     = p1,
                    precio_2     = p2,
                    precio_3     = p3,
                    precio_4     = p4,
                    precio_5     = p5,
                };
                return(dt);
            }).ToList();
            var listPrdPrecioMargen = ficha.prdPrecioMargen.Select(s =>
            {
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen p1 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen p2 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen p3 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen p4 = null;
                DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen p5 = null;
                if (s.precio_1 != null)
                {
                    p1 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                    {
                        utilidad = s.precio_1.utilidad
                    };
                }
                ;
                if (s.precio_2 != null)
                {
                    p2 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                    {
                        utilidad = s.precio_2.utilidad
                    };
                }
                ;
                if (s.precio_3 != null)
                {
                    p3 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                    {
                        utilidad = s.precio_3.utilidad
                    };
                }
                ;
                if (s.precio_4 != null)
                {
                    p4 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                    {
                        utilidad = s.precio_4.utilidad
                    };
                }
                ;
                if (s.precio_5 != null)
                {
                    p5 = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                    {
                        utilidad = s.precio_5.utilidad
                    };
                }
                ;
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioMargen()
                {
                    autoProducto = s.autoProducto,
                    precio_1     = p1,
                    precio_2     = p2,
                    precio_3     = p3,
                    precio_4     = p4,
                    precio_5     = p5,
                };
                return(dt);
            }).ToList();
            var listPrdPrecioHistorico = ficha.prdPrecioHistorico.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                {
                    autoProducto = s.autoProducto,
                    precio       = s.precio,
                    precio_id    = s.precio_id,
                    nota         = s.nota,
                };
                return(dt);
            }).ToList();

            var fichaDTO = new DtoLibInventario.Movimiento.Cargo.Insertar.Ficha()
            {
                mov                = movDTO,
                movDeposito        = depDTO,
                movDetalles        = detDTO,
                movKardex          = kardexDTO,
                prdCosto           = listPrdCosto,
                prdCostoHistorico  = listPrdCostoHistorico,
                prdPrecio          = listPrdPrecio,
                prdPrecioHistorico = listPrdPrecioHistorico,
                prdPrecioMargen    = listPrdPrecioMargen,
            };
            var r01 = MyData.Producto_Movimiento_Cargo_Insertar(fichaDTO);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                rt.Mensaje = r01.Mensaje;
                rt.Result  = OOB.Enumerados.EnumResult.isError;
                return(rt);
            }
            rt.Auto = r01.Auto;

            return(rt);
        }
예제 #2
0
        private bool RegistrarDocumento()
        {
            var movOOB = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaMov()
            {
                autoConcepto          = Concepto.id,
                autoDepositoDestino   = DepositoOrigen.id,
                autoDepositoOrigen    = DepositoOrigen.id,
                autoRemision          = "",
                autorizado            = miData.AutorizadoPor,
                autoUsuario           = Sistema.UsuarioP.autoUsu,
                cierreFtp             = "",
                codConcepto           = Concepto.codigo,
                codDepositoDestino    = DepositoOrigen.codigo,
                codDepositoOrigen     = DepositoOrigen.codigo,
                codigoSucursal        = Sucursal.codigo,
                codUsuario            = Sistema.UsuarioP.codigoUsu,
                desConcepto           = Concepto.descripcion,
                desDepositoDestino    = DepositoOrigen.descripcion,
                desDepositoOrigen     = DepositoOrigen.descripcion,
                documentoNombre       = "CARGOS",
                estacion              = Environment.MachineName,
                estatusAnulado        = "0",
                estatusCierreContable = "0",
                nota         = miData.Motivo,
                renglones    = _gestionDetalle.TotalItems,
                situacion    = "Procesado",
                tipo         = "01",
                total        = MontoMovimiento,
                usuario      = Sistema.UsuarioP.nombreUsu,
                factorCambio = tasaCambio,
                montoDivisa  = Math.Round(MontoMovimiento / tasaCambio, 2, MidpointRounding.AwayFromZero),
            };
            var detOOB = _gestionDetalle.Detalle.ListaItems.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaMovDetalle()
                {
                    autoDepartamento = s.FichaPrd.identidad.autoDepartamento,
                    autoGrupo        = s.FichaPrd.identidad.autoGrupo,
                    autoProducto     = s.FichaPrd.AutoId,
                    cantidad         = s.Cantidad,
                    cantidadBono     = 0,
                    cantidadUnd      = s.CantidadUnd,
                    categoria        = s.FichaPrd.Categoria,
                    codigoProducto   = s.FichaPrd.CodigoPrd,
                    contEmpaque      = s.FichaPrd.identidad.contenidoCompra,
                    costoCompra      = s.CostoMonedaLocal,
                    costoUnd         = s.CostoUndMonedaLocal,
                    decimales        = s.FichaPrd.Decimales,
                    empaque          = s.FichaPrd.identidad.empaqueCompra,
                    estatusAnulado   = "0",
                    estatusUnidad    = s.TipoEmpaqueSeleccionado == enumerados.enumTipoEmpaque.PorUnidad ? "1" : "0",
                    nombreProducto   = s.DescripcionPrd,
                    signo            = 1,
                    tipo             = "01",
                    total            = s.ImporteMonedaLocal,
                };
                return(rg);
            }).ToList();
            var gr3 = _gestionDetalle.Detalle.ListaItems.GroupBy
                          (g => new { g.FichaPrd.AutoId, g.DescripcionPrd }).
                      Select(g2 => new { id = g2.Key.AutoId, desc = g2.Key.DescripcionPrd, cnt = g2.Sum(s => s.CantidadUnd * s.Signo) }).ToList();
            var depOOB = gr3.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaMovDeposito()
                {
                    autoDeposito   = DepositoOrigen.id,
                    nombreProducto = s.desc,
                    autoProducto   = s.id,
                    cantidadUnd    = s.cnt,
                    nombreDeposito = DepositoOrigen.descripcion,
                };
                return(rg);
            }).ToList();
            var lCosto = _gestionDetalle.Detalle.ListaItems.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdCosto()
                {
                    autoProducto        = s.FichaPrd.AutoId,
                    cantidadEntranteUnd = s.CantidadUnd,
                    costoDivisa         = s.CostoDivisa,
                    costoFinal          = s.CostoMonedaLocal,
                    costoFinalUnd       = s.CostoUndMonedaLocal,
                };
                return(rg);
            }).ToList();
            var lCostoHistorico = _gestionDetalle.Detalle.ListaItems.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdCostoHistorico()
                {
                    autoProducto = s.FichaPrd.AutoId,
                    costo        = s.CostoMonedaLocal,
                    divisa       = s.CostoDivisa,
                    nota         = "",
                    tasaCambio   = s.TasaCambio,
                    serie        = "DOC",
                };
                return(rg);
            }).ToList();
            var kardexOOB = _gestionDetalle.Detalle.ListaItems.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaMovKardex()
                {
                    autoConcepto   = Concepto.id,
                    autoDeposito   = DepositoOrigen.id,
                    autoProducto   = s.FichaPrd.AutoId,
                    cantidad       = s.Cantidad,
                    cantidadBono   = 0.0m,
                    cantidadUnd    = s.CantidadUnd,
                    codigoMov      = "01",
                    codigoConcepto = Concepto.codigo,
                    codigoDeposito = DepositoOrigen.codigo,
                    codigoSucursal = Sucursal.codigo,
                    costoUnd       = s.CostoUndMonedaLocal,
                    entidad        = "",
                    estatusAnulado = "0",
                    modulo         = "Inventario",
                    nombreConcepto = Concepto.descripcion,
                    nombreDeposito = DepositoOrigen.descripcion,
                    nota           = "",
                    precioUnd      = 0.0m,
                    siglasMov      = "CAR",
                    signoMov       = 1,
                    total          = s.ImporteMonedaLocal,
                };
                return(rg);
            }).ToList();

            var rt1 = Sistema.MyData.Configuracion_MetodoCalculoUtilidad();

            if (rt1.Result == OOB.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(rt1.Mensaje);
                return(false);
            }
            var rt3 = Sistema.MyData.Configuracion_PreferenciaRegistroPrecio();

            if (rt3.Result == OOB.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(rt3.Mensaje);
                return(false);
            }
            var rt4 = Sistema.MyData.Configuracion_ForzarRedondeoPrecioVenta();

            if (rt4.Result == OOB.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(rt4.Mensaje);
                return(false);
            }
            var lMargen          = new List <OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioMargen>();
            var LPrecio          = new List <OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecio>();
            var lPrecioHistorico = new List <OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico>();

            foreach (var it in _gestionDetalle.Detalle.ListaItems)
            {
                if (it.EsAdmDivisa)
                {
                    var rt2 = Sistema.MyData.Producto_GetPrecio(it.FichaPrd.AutoId);
                    if (rt2.Result == OOB.Enumerados.EnumResult.isError)
                    {
                        Helpers.Msg.Error(rt2.Mensaje);
                        return(false);
                    }
                    var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecio();
                    rg.autoProducto = it.FichaPrd.AutoId;
                    rg.precio_1     = null;
                    rg.precio_2     = null;
                    rg.precio_3     = null;
                    rg.precio_4     = null;
                    rg.precio_5     = null;
                    if (rt2.Entidad.precioNeto1 > 0)
                    {
                        var p = Helpers.Utilitis.RecalcularPrecio(it.CostoUndMonedaLocal, rt2.Entidad.utilidad1, rt2.Entidad.tasaIva, rt3.Entidad, rt4.Entidad, rt1.Entidad, tasaCambio);
                        rg.precio_1 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                        {
                            precioNeto = p.neto, precio_divisa_full = p.fullDivisa
                        };
                        var ph = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                        {
                            autoProducto = it.FichaPrd.AutoId,
                            nota         = "",
                            precio       = p.neto,
                            precio_id    = "1",
                        };
                        lPrecioHistorico.Add(ph);
                    }
                    if (rt2.Entidad.precioNeto2 > 0)
                    {
                        var p = Helpers.Utilitis.RecalcularPrecio(it.CostoUndMonedaLocal, rt2.Entidad.utilidad2, rt2.Entidad.tasaIva, rt3.Entidad, rt4.Entidad, rt1.Entidad, tasaCambio);
                        rg.precio_2 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                        {
                            precioNeto = p.neto, precio_divisa_full = p.fullDivisa
                        };
                        var ph = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                        {
                            autoProducto = it.FichaPrd.AutoId,
                            nota         = "",
                            precio       = p.neto,
                            precio_id    = "2",
                        };
                        lPrecioHistorico.Add(ph);
                    }
                    if (rt2.Entidad.precioNeto3 > 0)
                    {
                        var p = Helpers.Utilitis.RecalcularPrecio(it.CostoUndMonedaLocal, rt2.Entidad.utilidad3, rt2.Entidad.tasaIva, rt3.Entidad, rt4.Entidad, rt1.Entidad, tasaCambio);
                        rg.precio_3 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                        {
                            precioNeto = p.neto, precio_divisa_full = p.fullDivisa
                        };
                        var ph = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                        {
                            autoProducto = it.FichaPrd.AutoId,
                            nota         = "",
                            precio       = p.neto,
                            precio_id    = "3",
                        };
                        lPrecioHistorico.Add(ph);
                    }
                    if (rt2.Entidad.precioNeto4 > 0)
                    {
                        var p = Helpers.Utilitis.RecalcularPrecio(it.CostoUndMonedaLocal, rt2.Entidad.utilidad4, rt2.Entidad.tasaIva, rt3.Entidad, rt4.Entidad, rt1.Entidad, tasaCambio);
                        rg.precio_4 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                        {
                            precioNeto = p.neto, precio_divisa_full = p.fullDivisa
                        };
                        var ph = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                        {
                            autoProducto = it.FichaPrd.AutoId,
                            nota         = "",
                            precio       = p.neto,
                            precio_id    = "4",
                        };
                        lPrecioHistorico.Add(ph);
                    }
                    if (rt2.Entidad.precioNeto5 > 0)
                    {
                        var p = Helpers.Utilitis.RecalcularPrecio(it.CostoUndMonedaLocal, rt2.Entidad.utilidad5, rt2.Entidad.tasaIva, rt3.Entidad, rt4.Entidad, rt1.Entidad, tasaCambio);
                        rg.precio_5 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecio()
                        {
                            precioNeto = p.neto, precio_divisa_full = p.fullDivisa
                        };
                        var ph = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioHistorico()
                        {
                            autoProducto = it.FichaPrd.AutoId,
                            nota         = "",
                            precio       = p.neto,
                            precio_id    = "PTO",
                        };
                        lPrecioHistorico.Add(ph);
                    }
                    LPrecio.Add(rg);
                }
                else
                {
                    var rt2 = Sistema.MyData.Producto_GetPrecio(it.FichaPrd.AutoId);
                    if (rt2.Result == OOB.Enumerados.EnumResult.isError)
                    {
                        Helpers.Msg.Error(rt2.Mensaje);
                        return(false);
                    }
                    var rg = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrdPrecioMargen();
                    rg.autoProducto = it.FichaPrd.AutoId;
                    rg.precio_1     = null;
                    rg.precio_2     = null;
                    rg.precio_3     = null;
                    rg.precio_4     = null;
                    rg.precio_5     = null;
                    if (rt2.Entidad.precioNeto1 > 0)
                    {
                        rg.precio_1 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                        {
                            utilidad = ReCalcularMargen(rt2.Entidad.precioNeto1, it.CostoUndMonedaLocal, rt1.Entidad),
                        };
                    }
                    if (rt2.Entidad.precioNeto2 > 0)
                    {
                        rg.precio_2 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                        {
                            utilidad = ReCalcularMargen(rt2.Entidad.precioNeto2, it.CostoUndMonedaLocal, rt1.Entidad),
                        };
                    }
                    if (rt2.Entidad.precioNeto3 > 0)
                    {
                        rg.precio_3 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                        {
                            utilidad = ReCalcularMargen(rt2.Entidad.precioNeto3, it.CostoUndMonedaLocal, rt1.Entidad),
                        };
                    }
                    if (rt2.Entidad.precioNeto4 > 0)
                    {
                        rg.precio_4 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                        {
                            utilidad = ReCalcularMargen(rt2.Entidad.precioNeto4, it.CostoUndMonedaLocal, rt1.Entidad),
                        };
                    }
                    if (rt2.Entidad.precioNeto5 > 0)
                    {
                        rg.precio_5 = new OOB.LibInventario.Movimiento.Cargo.Insertar.FichaPrecioMargen()
                        {
                            utilidad = ReCalcularMargen(rt2.Entidad.precioNeto5, it.CostoUndMonedaLocal, rt1.Entidad),
                        };
                    }
                    lMargen.Add(rg);
                }
            }

            var fichaOOB = new OOB.LibInventario.Movimiento.Cargo.Insertar.Ficha()
            {
                mov                = movOOB,
                movDeposito        = depOOB,
                movDetalles        = detOOB,
                movKardex          = kardexOOB,
                prdCosto           = lCosto,
                prdCostoHistorico  = lCostoHistorico,
                prdPrecioMargen    = lMargen,
                prdPrecio          = LPrecio,
                prdPrecioHistorico = lPrecioHistorico,
            };
            var r01 = Sistema.MyData.Producto_Movimiento_Cargo_Insertar(fichaOOB);

            if (r01.Result == OOB.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(r01.Mensaje);
                return(false);
            }

            Helpers.VisualizarDocumento.CargarVisualizarDocumento(r01.Auto);

            return(true);
        }