Exemplo n.º 1
0
        //INSERTAR
        public DtoLib.ResultadoAuto Producto_Movimiento_Ajuste_Insertar(DtoLibInventario.Movimiento.Ajuste.Insertar.Ficha ficha)
        {
            var rv1 = ServiceProv.Producto_Movimiento_Verificar_DepositoSucursalActivo(
                ficha.mov.autoDepositoOrigen,
                ficha.mov.autoDepositoDestino,
                ficha.mov.codigoSucursal);

            if (rv1.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                var rte = new DtoLib.ResultadoAuto()
                {
                    Mensaje = rv1.Mensaje,
                    Result  = DtoLib.Enumerados.EnumResult.isError,
                };
                return(rte);
            }

            var rt1 = ServiceProv.Configuracion_CostoEdadProducto();

            if (rt1.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                var rtx = new DtoLib.ResultadoAuto()
                {
                    Mensaje = rt1.Mensaje,
                    Result  = rt1.Result,
                };
                return(rtx);
            }
            var costoEdad = rt1.Entidad;

            var lista = new List <DtoLibInventario.Movimiento.Verificar.ExistenciaDisponible.Ficha>();

            foreach (var rg in ficha.movDeposito.Where(w => w.cantidadUnd < 0).ToList())
            {
                lista.Add(new DtoLibInventario.Movimiento.Verificar.ExistenciaDisponible.Ficha()
                {
                    autoProducto = rg.autoProducto,
                    autoDeposito = rg.autoDeposito,
                    cantidadUnd  = Math.Abs(rg.cantidadUnd),
                });
            }
            var rt = ServiceProv.Producto_Movimiento_Verificar_ExistenciaDisponible(lista);

            if (rt.Result == DtoLib.Enumerados.EnumResult.isError || rt.Entidad == false)
            {
                var rte = new DtoLib.ResultadoAuto()
                {
                    Auto    = "",
                    Mensaje = rt.Mensaje,
                    Result  = DtoLib.Enumerados.EnumResult.isError,
                };
                return(rte);
            }

            if (costoEdad > 0)
            {
                var listaCostoEdad = new List <DtoLibInventario.Movimiento.Verificar.CostoEdad.FichaDetalle>();
                foreach (var rg in ficha.movDeposito.Where(w => w.cantidadUnd < 0).ToList())
                {
                    listaCostoEdad.Add(new DtoLibInventario.Movimiento.Verificar.CostoEdad.FichaDetalle()
                    {
                        autoProducto = rg.autoProducto,
                    });
                }
                var fichaCostoEdad = new DtoLibInventario.Movimiento.Verificar.CostoEdad.Ficha()
                {
                    detalles = listaCostoEdad,
                    dias     = costoEdad,
                };

                if (listaCostoEdad.Count > 0)
                {
                    var rt2 = ServiceProv.Producto_Movimiento_Verificar_CostoEdad(fichaCostoEdad);
                    if (rt2.Result == DtoLib.Enumerados.EnumResult.isError || rt2.Entidad == false)
                    {
                        var rte = new DtoLib.ResultadoAuto()
                        {
                            Auto    = "",
                            Mensaje = rt2.Mensaje,
                            Result  = DtoLib.Enumerados.EnumResult.isError,
                        };
                        return(rte);
                    }
                }
            }

            return(ServiceProv.Producto_Movimiento_Ajuste_Insertar(ficha));
        }
Exemplo n.º 2
0
        //INSERTAR
        public OOB.ResultadoAuto Producto_Movimiento_Ajuste_Insertar(OOB.LibInventario.Movimiento.Ajuste.Insertar.Ficha data)
        {
            var rt = new OOB.ResultadoAuto();

            var mov    = data.mov;
            var movDTO = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMov()
            {
                autoConcepto          = mov.autoConcepto,
                autoDepositoDestino   = mov.autoDepositoDestino,
                autoDepositoOrigen    = mov.autoDepositoOrigen,
                autoRemision          = mov.autoRemision,
                autorizado            = mov.autorizado,
                autoUsuario           = mov.autoUsuario,
                cierreFtp             = mov.cierreFtp,
                codConcepto           = mov.codConcepto,
                codDepositoDestino    = mov.codDepositoDestino,
                codDepositoOrigen     = mov.codDepositoOrigen,
                codigoSucursal        = mov.codigoSucursal,
                codUsuario            = mov.codUsuario,
                desConcepto           = mov.desConcepto,
                desDepositoDestino    = mov.desDepositoDestino,
                desDepositoOrigen     = mov.desDepositoOrigen,
                documentoNombre       = mov.documentoNombre,
                estacion              = mov.estacion,
                estatusAnulado        = mov.estatusAnulado,
                estatusCierreContable = mov.estatusCierreContable,
                nota         = mov.nota,
                renglones    = mov.renglones,
                situacion    = mov.situacion,
                tipo         = mov.tipo,
                total        = mov.total,
                usuario      = mov.usuario,
                factorCambio = mov.factorCambio,
                montoDivisa  = mov.montoDivisa,
            };
            var movDetDTO = data.movDetalles.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Ajuste.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 movKardexDTO = data.movKardex.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Ajuste.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 movDepDTO = data.movDeposito.Select(s =>
            {
                var dt = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMovDeposito()
                {
                    autoProducto   = s.autoProducto,
                    autoDeposito   = s.autoDeposito,
                    cantidadUnd    = s.cantidadUnd,
                    nombreProducto = s.nombreProducto,
                    nombreDeposito = s.nombreDeposito,
                };
                return(dt);
            }).ToList();
            var fichaDto = new DtoLibInventario.Movimiento.Ajuste.Insertar.Ficha()
            {
                mov         = movDTO,
                movDeposito = movDepDTO,
                movDetalles = movDetDTO,
                movKardex   = movKardexDTO,
            };
            var r01 = MyData.Producto_Movimiento_Ajuste_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);
        }