示例#1
0
        public OOB.ResultadoAuto Producto_Movimiento_DesCargo_Insertar(OOB.LibInventario.Movimiento.DesCargo.Insertar.Ficha ficha)
        {
            var rt = new OOB.ResultadoAuto();

            var xficha = ficha.mov;
            var movDTO = new DtoLibInventario.Movimiento.DesCargo.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.DesCargo.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.DesCargo.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.DesCargo.Insertar.FichaMovDeposito()
                {
                    autoProducto   = s.autoProducto,
                    nombreProducto = s.nombreProducto,
                    autoDeposito   = s.autoDeposito,
                    cantidadUnd    = s.cantidadUnd,
                    nombreDeposito = s.nombreDeposito,
                };
                return(dt);
            }).ToList();

            var fichaDTO = new DtoLibInventario.Movimiento.DesCargo.Insertar.Ficha()
            {
                mov         = movDTO,
                movDeposito = depDTO,
                movDetalles = detDTO,
                movKardex   = kardexDTO,
            };
            var r01 = MyData.Producto_Movimiento_DesCargo_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);
        }
        private bool RegistrarDocumento()
        {
            var movOOB = new OOB.LibInventario.Movimiento.DesCargo.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       = "DESCARGOS",
                estacion              = Environment.MachineName,
                estatusAnulado        = "0",
                estatusCierreContable = "0",
                nota         = miData.Motivo,
                renglones    = _gestionDetalle.TotalItems,
                situacion    = "Procesado",
                tipo         = "02",
                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.DesCargo.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             = "02",
                    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.DesCargo.Insertar.FichaMovDeposito()
                {
                    autoDeposito   = DepositoOrigen.id,
                    autoProducto   = s.id,
                    nombreProducto = s.desc,
                    cantidadUnd    = s.cnt,
                    nombreDeposito = DepositoOrigen.descripcion,
                };
                return(rg);
            }).ToList();
            var KardexOOB = _gestionDetalle.Detalle.ListaItems.Select(s =>
            {
                var rg = new OOB.LibInventario.Movimiento.DesCargo.Insertar.FichaMovKardex()
                {
                    autoConcepto   = Concepto.id,
                    autoDeposito   = DepositoOrigen.id,
                    autoProducto   = s.FichaPrd.AutoId,
                    cantidad       = s.Cantidad,
                    cantidadBono   = 0.0m,
                    cantidadUnd    = s.CantidadUnd,
                    codigoMov      = "02",
                    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      = "DES",
                    signoMov       = -1,
                    total          = s.ImporteMonedaLocal,
                };
                return(rg);
            }).ToList();

            var ficha = new OOB.LibInventario.Movimiento.DesCargo.Insertar.Ficha()
            {
                mov         = movOOB,
                movDeposito = depOOB,
                movDetalles = detOOB,
                movKardex   = KardexOOB,
            };
            var r01 = Sistema.MyData.Producto_Movimiento_DesCargo_Insertar(ficha);

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

            return(true);
        }