static void Main(string[] args) { Provider.Infra.IProvider _dp = new Provider.Data.DataProvider(); var r01 = _dp.Inicializa(); if (r01.Result == DTO.Resultado.Enumerados.EnumResult.isError) { Console.WriteLine(r01.Mensaje); } else { var autoPrd = "0000001114"; var autoDep = "0000000001"; var desde = new DateTime(2020, 04, 01); var filtro = new DTO.Inventario.Movimiento.Filtro() { AutoProducto = autoPrd, AutoDeposito = autoDep, DesdeFecha = desde, HastaFecha = null, }; var r02 = _dp.MovimientoFicha(filtro); if (r02.Result == DTO.Resultado.Enumerados.EnumResult.isError) { Console.WriteLine(r02.Mensaje); } } }
public DTO.Resultado.Entidad <DTO.Inventario.Movimiento.Ficha> MovimientoFicha(DTO.Inventario.Movimiento.Filtro filtro) { var result = new DTO.Resultado.Entidad <DTO.Inventario.Movimiento.Ficha>(); var autoPrd = filtro.AutoProducto; var autoDeposito = filtro.AutoDeposito; try { using (var ctx = new leonuxEntities(_cn.ConnectionString)) { var entPrd = ctx.productos.Find(autoPrd); if (entPrd == null) { result.Mensaje = "[ ID ] PRODUCTO NO ENCONTRADO"; result.Result = DTO.Resultado.Enumerados.EnumResult.isError; return(result); } var entListDep = ctx.productos_deposito.Join(ctx.empresa_depositos, pd => pd.auto_deposito, dep => dep.auto, (pd, dep) => new { prdDep = pd, dep = dep }). Where(w => w.prdDep.auto_producto == autoPrd).ToList(); if (entListDep == null) { result.Mensaje = "DEPOSITOS NO DEFINIDO"; result.Result = DTO.Resultado.Enumerados.EnumResult.isError; return(result); } if (entListDep.Count == 0) { result.Mensaje = "DEPOSITOS NO ASIGNADOS"; result.Result = DTO.Resultado.Enumerados.EnumResult.isError; return(result); } var entListVenta = ctx.ventas_detalle.Join(ctx.ventas, vd => vd.auto_documento, v => v.auto, (vd, v) => new { det = vd, venta = v }). Where(w => w.det.auto_producto == autoPrd).ToList(); if (entListVenta != null) { if (entListVenta.Count > 0) { if (autoDeposito != "") { entListVenta = entListVenta.Where(w => w.det.auto_deposito == autoDeposito).ToList(); } if (filtro.DesdeFecha.HasValue) { entListVenta = entListVenta.Where(w => w.det.fecha >= filtro.DesdeFecha.Value).ToList(); } if (filtro.HastaFecha.HasValue) { entListVenta = entListVenta.Where(w => w.det.fecha <= filtro.HastaFecha.Value).ToList(); } entListVenta = entListVenta.Where(w => w.det.estatus_anulado == "0").ToList(); } } var entListCompra = ctx.compras_detalle.Join(ctx.compras, cd => cd.auto_documento, c => c.auto, (cd, c) => new { det = cd, compra = c }). Where(w => w.det.auto_producto == autoPrd).ToList(); if (entListCompra != null) { if (entListCompra.Count > 0) { if (filtro.DesdeFecha.HasValue) { entListCompra = entListCompra.Where(w => w.det.fecha >= filtro.DesdeFecha.Value).ToList(); } if (filtro.HastaFecha.HasValue) { entListCompra = entListCompra.Where(w => w.det.fecha <= filtro.HastaFecha.Value).ToList(); } entListCompra = entListCompra.Where(w => w.det.estatus_anulado == "0").ToList(); entListCompra = entListCompra.Where(w => w.det.tipo == "01" || w.det.tipo == "03").ToList(); } } var entListInv = ctx.productos_movimientos_detalle.Join(ctx.productos_movimientos, pmd => pmd.auto_documento, pm => pm.auto, (pmd, pm) => new { det = pmd, mov = pm }). Where(w => w.det.auto_producto == autoPrd).ToList(); if (entListInv != null) { if (entListInv.Count > 0) { if (filtro.AutoDeposito != "") { entListInv = entListInv.Where(w => w.mov.auto_deposito == autoDeposito || w.mov.auto_destino == autoDeposito).ToList(); } if (filtro.DesdeFecha.HasValue) { entListInv = entListInv.Where(w => w.det.fecha >= filtro.DesdeFecha.Value).ToList(); } if (filtro.HastaFecha.HasValue) { entListInv = entListInv.Where(w => w.det.fecha <= filtro.HastaFecha.Value).ToList(); } entListInv = entListInv.Where(w => w.det.estatus_anulado == "0").ToList(); } } var existenciaAntesFecha = 0.0m; var entListKardex = ctx.productos_kardex.Join(ctx.productos_conceptos, pk => pk.auto_concepto, pc => pc.auto, (k, c) => new { kardex = k, concepto = c }). Where(w => w.kardex.auto_producto == autoPrd).ToList(); if (entListKardex != null) { if (entListKardex.Count > 0) { entListKardex = entListKardex.Where(w => w.kardex.estatus_anulado == "0").ToList(); if (filtro.AutoDeposito != "") { entListKardex = entListKardex.Where(w => w.kardex.auto_deposito == autoDeposito).ToList(); } if (filtro.DesdeFecha.HasValue) { existenciaAntesFecha = entListKardex.Where(w => w.kardex.fecha < filtro.DesdeFecha.Value).Sum(s => s.kardex.cantidad_und * s.kardex.signo); entListKardex = entListKardex.Where(w => w.kardex.fecha >= filtro.DesdeFecha.Value).ToList(); } if (filtro.HastaFecha.HasValue) { entListKardex = entListKardex.Where(w => w.kardex.fecha <= filtro.HastaFecha.Value).ToList(); } } } var listDep = new List <DTO.Inventario.Movimiento.DepositoExistencia>(); foreach (var rg in entListDep) { var nr = new DTO.Inventario.Movimiento.DepositoExistencia() { autoDeposito = rg.prdDep.auto_deposito, DepositoCodigo = rg.dep.codigo, DepositoDescripcion = rg.dep.nombre, ExFisica = rg.prdDep.fisica, }; listDep.Add(nr); } var listVenta = new List <DTO.Inventario.Movimiento.MovPorVenta>(); foreach (var rg in entListVenta) { var nr = new DTO.Inventario.Movimiento.MovPorVenta() { autoVenta = rg.venta.auto, autoDeposito = rg.det.auto_deposito, Cantidad = rg.det.cantidad_und, CodigoSucursal = rg.venta.codigo_sucursal, DocumentoNombre = rg.venta.documento_nombre, DocumentoNro = rg.venta.documento, DocumentoTipo = rg.venta.documento_tipo, DocumentoCodigo = rg.venta.tipo, CiRif = rg.venta.ci_rif, Entidad = rg.venta.razon_social, Fecha = rg.venta.fecha, Hora = rg.venta.hora, Signo = rg.det.signo, CodigoDeposito = rg.det.codigo_deposito, NombreDeposito = rg.det.deposito }; listVenta.Add(nr); } var listCompra = new List <DTO.Inventario.Movimiento.MovPorCompra>(); foreach (var rg in entListCompra) { var nr = new DTO.Inventario.Movimiento.MovPorCompra() { autoCompra = rg.compra.auto, autoDeposito = rg.det.auto_deposito, Cantidad = rg.det.cantidad_und, CodigoDeposito = rg.det.codigo_deposito, CodigoSucursal = rg.compra.codigo_sucursal, DocumentoNombre = rg.compra.documento_nombre, DocumentoNro = rg.compra.documento, DocumentoTipo = rg.compra.documento_tipo, DocumentoCodigo = rg.compra.tipo, Entidad = rg.compra.razon_social, Fecha = rg.det.fecha, Hora = rg.compra.hora, NombreDeposito = rg.det.deposito, Notas = rg.det.detalle, Signo = rg.det.signo, }; listCompra.Add(nr); } var listInventario = new List <DTO.Inventario.Movimiento.MovPorInventario>(); foreach (var rg in entListInv) { var nr = new DTO.Inventario.Movimiento.MovPorInventario() { autoConcepto = rg.mov.auto_concepto, autoDepositoDestino = rg.mov.auto_destino, autoDepositoOrigen = rg.mov.auto_deposito, autoDocumento = rg.det.auto_documento, Cantidad = rg.det.cantidad_und, ConceptoCodigo = rg.mov.codigo_concepto, ConceptoNombre = rg.mov.concepto, DepositoDestinoCodigo = rg.mov.codigo_destino, DepositoDestinoNombre = rg.mov.destino, DepositoOrigenCodigo = rg.mov.codigo_deposito, DepositoOrigenNombre = rg.mov.deposito, DocumentoNombre = rg.mov.documento_nombre, DocumentoNro = rg.mov.documento, DocumentoTipo = rg.mov.tipo, Fecha = rg.det.fecha, Hora = rg.mov.hora, Nota = rg.mov.nota, Signo = rg.det.signo, }; listInventario.Add(nr); } var listKardex = new List <DTO.Inventario.Movimiento.Kardex>(); foreach (var rg in entListKardex) { var nr = new DTO.Inventario.Movimiento.Kardex() { autoCocepto = rg.kardex.auto_concepto, autoDeposito = rg.kardex.auto_deposito, autoDocumento = rg.kardex.auto_documento, ConceptoCodigo = rg.concepto.codigo, ConceptoNombre = rg.concepto.nombre, DepositoCodigo = rg.kardex.empresa_depositos.codigo, DepositoNombre = rg.kardex.empresa_depositos.nombre, DocumentoModulo = rg.kardex.modulo, DocumentoNro = rg.kardex.documento, DocumentoCodigo = rg.kardex.codigo, DocumentoSiglas = rg.kardex.siglas, Entidad = rg.kardex.entidad, Fecha = rg.kardex.fecha, Hora = rg.kardex.hora, Cantidad = rg.kardex.cantidad_und, Signo = rg.kardex.signo, }; listKardex.Add(nr); } var ficha = new DTO.Inventario.Movimiento.Ficha() { autoProducto = entPrd.auto, codigProducto = entPrd.codigo, descripcionProducto = entPrd.nombre, isPesado = entPrd.estatus_pesado.Trim().ToUpper() == "1"?true:false, }; ficha.ExistenciaAntesFecha = existenciaAntesFecha; ficha.Depositos = listDep; ficha.MovVentas = listVenta; ficha.MovCompra = listCompra; ficha.MovInventario = listInventario; ficha.Kardex = listKardex; result.MyEntidad = ficha; } } catch (Exception e) { result.Mensaje = e.Message; result.Result = DTO.Resultado.Enumerados.EnumResult.isError; } return(result); }
public OOB.Resultado.Entidad <OOB.Inventario.Movimiento.Ficha> MovimientoFicha(OOB.Inventario.Movimiento.Filtro filtro) { var result = new OOB.Resultado.Entidad <OOB.Inventario.Movimiento.Ficha>(); var filtroDto = new DTO.Inventario.Movimiento.Filtro() { AutoProducto = filtro.AutoProducto, AutoDeposito = filtro.AutoDeposito, DesdeFecha = filtro.DesdeFecha, HastaFecha = filtro.HastaFecha, }; var r01 = MyData.MovimientoFicha(filtroDto); if (r01.Result == DTO.Resultado.Enumerados.EnumResult.isError) { result.Mensaje = r01.Mensaje; result.Result = OOB.Resultado.Enumerados.EnumResult.isError; return(result); } var rg = r01.MyEntidad; var nr = new OOB.Inventario.Movimiento.Ficha() { autoProducto = rg.autoProducto, codigProducto = rg.codigProducto, descripcionProducto = rg.descripcionProducto, isPesado = rg.isPesado, ExistenciaAntesFecha = rg.ExistenciaAntesFecha, }; var dep = new List <OOB.Inventario.Movimiento.DepositoExistencia>(); var ven = new List <OOB.Inventario.Movimiento.MovPorVenta>(); var com = new List <OOB.Inventario.Movimiento.MovPorCompra>(); var inv = new List <OOB.Inventario.Movimiento.MovPorInventario>(); var kdx = new List <OOB.Inventario.Movimiento.Kardex>(); if (rg.Depositos != null) { if (rg.Depositos.Count > 0) { dep = rg.Depositos.Select(s => { var it = new OOB.Inventario.Movimiento.DepositoExistencia() { autoDeposito = s.autoDeposito, DepositoCodigo = s.DepositoCodigo, DepositoDescripcion = s.DepositoDescripcion, ExFisica = s.ExFisica, }; return(it); }).ToList(); } } if (rg.MovVentas != null) { if (rg.MovVentas.Count > 0) { ven = rg.MovVentas.Select(s => { var it = new OOB.Inventario.Movimiento.MovPorVenta() { autoVenta = s.autoVenta, autoDeposito = s.autoDeposito, Cantidad = s.Cantidad, CiRif = s.CiRif, CodigoSucursal = s.CodigoSucursal, DocumentoCodigo = s.DocumentoCodigo, DocumentoNombre = s.DocumentoNombre, DocumentoNro = s.DocumentoNro, DocumentoTipo = s.DocumentoTipo, Entidad = s.Entidad, Fecha = s.Fecha, Hora = s.Hora, Signo = s.Signo, NombreDeposito = s.NombreDeposito, CodigoDeposito = s.CodigoDeposito, }; return(it); }).ToList(); } } if (rg.MovCompra != null) { if (rg.MovCompra.Count > 0) { com = rg.MovCompra.Select(s => { var it = new OOB.Inventario.Movimiento.MovPorCompra() { autoCompra = s.autoCompra, autoDeposito = s.autoDeposito, CodigoDeposito = s.CodigoDeposito, NombreDeposito = s.NombreDeposito, Notas = s.Notas, Cantidad = s.Cantidad, CodigoSucursal = s.CodigoSucursal, DocumentoCodigo = s.DocumentoCodigo, DocumentoNombre = s.DocumentoNombre, DocumentoNro = s.DocumentoNro, DocumentoTipo = s.DocumentoTipo, Entidad = s.Entidad, Fecha = s.Fecha, Hora = s.Hora, Signo = s.Signo, }; return(it); }).ToList(); } } if (rg.MovInventario != null) { if (rg.MovInventario.Count > 0) { inv = rg.MovInventario.Select(s => { var it = new OOB.Inventario.Movimiento.MovPorInventario() { autoConcepto = s.autoConcepto, autoDepositoDestino = s.autoDepositoDestino, autoDepositoOrigen = s.autoDepositoOrigen, autoDocumento = s.autoDocumento, ConceptoCodigo = s.ConceptoCodigo, ConceptoNombre = s.ConceptoNombre, DepositoDestinoCodigo = s.DepositoDestinoCodigo, DepositoDestinoNombre = s.DepositoDestinoNombre, DepositoOrigenCodigo = s.DepositoOrigenCodigo, DepositoOrigenNombre = s.DepositoOrigenNombre, Nota = s.Nota, Cantidad = s.Cantidad, DocumentoNombre = s.DocumentoNombre, DocumentoNro = s.DocumentoNro, DocumentoTipo = s.DocumentoTipo, Fecha = s.Fecha, Hora = s.Hora, Signo = s.Signo, }; return(it); }).ToList(); } } if (rg.Kardex != null) { if (rg.Kardex.Count > 0) { kdx = rg.Kardex.Select(s => { var it = new OOB.Inventario.Movimiento.Kardex() { autoCocepto = s.autoCocepto, autoDeposito = s.autoDeposito, autoDocumento = s.autoDocumento, ConceptoCodigo = s.ConceptoCodigo, ConceptoNombre = s.ConceptoNombre, DepositoCodigo = s.DepositoCodigo, DepositoNombre = s.DepositoNombre, DocumentoNro = s.DocumentoNro, DocumentoCodigo = s.DocumentoCodigo, DocumentoModulo = s.DocumentoModulo, DocumentoSiglas = s.DocumentoSiglas, Entidad = s.Entidad, Cantidad = s.Cantidad, Fecha = s.Fecha, Hora = s.Hora, Signo = s.Signo, }; return(it); }).ToList(); } } nr.Depositos = dep; nr.MovVentas = ven; nr.MovCompra = com; nr.MovInventario = inv; nr.Kardex = kdx; result.MyEntidad = nr; return(result); }
public DTO.Resultado.Entidad <DTO.Inventario.Movimiento.Ficha> MovimientoFicha(DTO.Inventario.Movimiento.Filtro filtro) { return(MyService.MovimientoFicha(filtro)); }