示例#1
0
        public List <PreventaInternalModel> GetPreventasHeaderPorVendedor(string id)
        {
            var preventa = _context.Preventa
                           .Where(mf => mf.FCRMVH_MODFOR == "FC" &&
                                  mf.FCRMVH_CODFOR == "PREVEN" &&
                                  mf.FCRMVH_USERID == id)
                           .ToList();

            var preventas_ = new List <PreventaInternalModel>();

            foreach (var p in preventa)
            {
                var prevenResult = new PreventaInternalModel()
                {
                    FechaDesde      = p.FCRMVH_FCHDES,
                    FechaHasta      = p.FCRMVH_FCHHAS,
                    FechaMovimiento = p.FCRMVH_FCHMOV,
                    NumeroCliente   = p.FCRMVH_NROCTA,
                    UserName        = p.FCRMVH_USERID,
                    NumeroPreventa  = p.FCRMVH_NROFOR,
                    Observacion     = p.FCRMVH_TEXTOS,
                };
                preventas_.Add(prevenResult);
            }

            return(preventas_);
        }
示例#2
0
        public PreVenta MapearPreventa(PreventaInternalModel preventa)
        {
            var NewPreventa = new PreVenta()
            {
                FCRMVH_NROCTA = preventa.NumeroCliente
            };

            return(NewPreventa);
        }
示例#3
0
        public PreventaInternalModel GetPreventa(int id)
        {
            IQueryable <PreVenta> preventa = _context.Preventa.AsNoTracking();

            preventa = preventa.Where(p => p.FCRMVH_NROFOR == id &&
                                      p.FCRMVH_MODFOR == "FC" &&
                                      p.FCRMVH_CODFOR == "PREVAP");

            var prevent      = preventa.FirstOrDefault();
            var prevenResult = new PreventaInternalModel();

            if (prevent != null)
            {
                var itemspreven_ = _context.ItemPreVentas.Where(i => i.FCRMVI_NROFOR == id &&
                                                                i.FCRMVI_CODFOR == "PREVAP" &&
                                                                i.FCRMVI_USERID == prevent.FCRMVH_USERID).ToList();

                var itemsp_ = new List <ItemPreventaInternalModel>();
                foreach (var i in itemspreven_)
                {
                    var producto = GetProductoPorTIPPRO_ARTCOD(i.FCRMVI_TIPPRO, i.FCRMVI_ARTCOD);

                    var itemActual = new ItemPreventaInternalModel()
                    {
                        Cantidad            = i.FCRMVI_CANTID,
                        CodigoArticulo      = producto.STMPDH_ARTCOD,
                        IndCod              = producto.STMPDH_INDCOD,
                        DescripcionArticulo = producto.STMPDH_DESCRP,
                        Precio              = i.FCRMVI_PRECIO,
                        TipoProducto        = i.FCRMVI_TIPPRO,
                        Total = i.FCRMVI_TOTLIN
                    };
                    itemsp_.Add(itemActual);
                }

                prevenResult.FechaDesde      = prevent.FCRMVH_FCHDES;
                prevenResult.FechaHasta      = prevent.FCRMVH_FCHHAS;
                prevenResult.FechaMovimiento = prevent.FCRMVH_FCHMOV;
                prevenResult.NumeroCliente   = prevent.FCRMVH_NROCTA;
                prevenResult.UserName        = prevent.FCRMVH_USERID;
                prevenResult.NumeroPreventa  = prevent.FCRMVH_NROFOR;
                prevenResult.Observacion     = prevent.FCRMVH_TEXTOS;
                prevenResult.ItemsPreventa   = itemsp_;
            }


            return(prevenResult);
        }
示例#4
0
        public List <ItemPreVenta> MapearItemPreVenta(PreventaInternalModel items)
        {
            List <ItemPreVenta> ItemsPreventa = new List <ItemPreVenta>();

            foreach (var i in items.ItemsPreventa)
            {
                var NewItem = new ItemPreVenta()
                {
                    FCRMVI_ARTCOD = i.CodigoArticulo,
                    FCRMVI_TIPPRO = i.TipoProducto
                };

                ItemsPreventa.Add(NewItem);
            }

            return(ItemsPreventa);
        }
示例#5
0
        public async Task <IHttpActionResult> CrearPreventa([FromBody] PreventaInternalModel preventa)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //TODO: Obtener ultimo numero de PREVENTA -> NROFOR
                    var LastPrevap = _cabodiRepository.GetLastNroPrevap();
                    //TODO: Obtener CLIENTE -> DIRENT, PAIENT, CODENT, VNDDOR
                    var cliente = _cabodiRepository.GetCliente(preventa.NumeroCliente);

                    PreVenta            NewPreventa = MapearPreventa(preventa, LastPrevap, cliente);
                    List <ItemPreVenta> Items       = MapearItemPreVenta(preventa, LastPrevap, cliente);

                    _cabodiRepository.AddPreventa(NewPreventa);

                    preventa.NumeroPreventa = NewPreventa.FCRMVH_NROFOR;

                    var result = _cabodiRepository.SaveChanges();

                    foreach (var item in Items)
                    {
                        _cabodiRepository.AddItemPreventa(item);
                    }

                    if (await _cabodiRepository.SaveChangesAsync())
                    {
                        preventa.NumeroPreventa = NewPreventa.FCRMVH_NROFOR;
                        foreach (var item in preventa.ItemsPreventa)
                        {
                            var articulo = _cabodiRepository.GetProductoPorTIPPRO_ARTCOD(item.TipoProducto, item.CodigoArticulo);
                            item.DescripcionArticulo = articulo.STMPDH_DESCRP;
                        }

                        return(Ok(preventa));
                    }
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }

            return(BadRequest());
        }
示例#6
0
        public async Task <PreventaInternalModel> GetLastPreventaPorVendedor(string id)
        {
            var preventa = _context.Preventa
                           .Where(mf => mf.FCRMVH_MODFOR == "FC" &&
                                  mf.FCRMVH_CODFOR == "PREVEN" &&
                                  mf.FCRMVH_USERID == id)
                           .OrderByDescending(mf => mf.FCRMVH_NROFOR).FirstOrDefault();

            List <ItemPreVenta> itemspreven_ = _context.ItemPreVentas.Where(i => i.FCRMVI_NROFOR == preventa.FCRMVH_NROFOR &&
                                                                            i.FCRMVI_CODFOR == "PREVEN" &&
                                                                            i.FCRMVI_USERID == preventa.FCRMVH_USERID).ToList();

            var itemsp_ = new List <ItemPreventaInternalModel>();

            foreach (var i in itemspreven_)
            {
                var itemActual = new ItemPreventaInternalModel()
                {
                    //NumeroItem = i.FCRMVI_NROITM,
                    Cantidad       = i.FCRMVI_CANTID,
                    CodigoArticulo = i.FCRMVI_ARTCOD,
                    Precio         = i.FCRMVI_PRECIO,
                    TipoProducto   = i.FCRMVI_TIPPRO,
                    Total          = i.FCRMVI_TOTLIN
                };
                itemsp_.Add(itemActual);
            }

            var prevenResult = new PreventaInternalModel()
            {
                FechaDesde      = preventa.FCRMVH_FCHDES,
                FechaHasta      = preventa.FCRMVH_FCHHAS,
                FechaMovimiento = preventa.FCRMVH_FCHMOV,
                NumeroCliente   = preventa.FCRMVH_NROCTA,
                UserName        = preventa.FCRMVH_USERID,
                NumeroPreventa  = preventa.FCRMVH_NROFOR,
                Observacion     = preventa.FCRMVH_TEXTOS,
                ItemsPreventa   = itemsp_
            };

            return(await Task.Run(() => prevenResult));
        }
示例#7
0
        public async Task <IHttpActionResult> CreatePreventa([FromBody] PreventaInternalModel prevent)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    prevent.NumeroPreventa = 99999;
                    return(Ok(prevent));
                }
                else
                {
                    InternalServerError();
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError());
            }

            return(BadRequest());
        }
示例#8
0
        public async Task <PreventaInternalModel[]> GetPreventasPorVendedorAsync(PrevapFilterInputModel model)
        {
            var output = new PrevapOutputModel();

            IQueryable <PreVenta> preventas = _context.Preventa.AsNoTracking();

            if (!string.IsNullOrEmpty(model.NumeroVendedor))
            {
                preventas = preventas.Where(p => p.FCRMVH_USERID == model.NumeroVendedor &&
                                            p.FCRMVH_MODFOR == "FC" &&
                                            p.FCRMVH_CODFOR == "PREVAP");
            }

            if (!string.IsNullOrEmpty(model.NumeroCliente))
            {
                preventas = preventas.Where(p => p.FCRMVH_NROCTA == model.NumeroCliente);
            }

            DateTime fromDateParam = model.FechaDesde ?? DateTime.MinValue;
            DateTime toDateParam   = model.FechaHasta.HasValue ? model.FechaHasta.Value.AddDays(1).Date.AddSeconds(-1) : DateTime.MaxValue;

            preventas = preventas.Where(c => DbFunctions.TruncateTime(c.FCRMVH_FECALT) >= fromDateParam.Date && DbFunctions.TruncateTime(c.FCRMVH_FECALT) <= toDateParam);

            var preventa = preventas.OrderByDescending(venta => venta.FCRMVH_NROFOR).Take(10).ToList();

            var preventas_ = new List <PreventaInternalModel>();

            foreach (var p in preventa)
            {
                var itemspreven_ = _context.ItemPreVentas.Where(i => i.FCRMVI_NROFOR == p.FCRMVH_NROFOR &&
                                                                i.FCRMVI_CODFOR == "PREVAP" &&
                                                                i.FCRMVI_USERID == p.FCRMVH_USERID);

                var itemsp_ = new List <ItemPreventaInternalModel>();
                foreach (var i in itemspreven_)
                {
                    var itemActual = new ItemPreventaInternalModel()
                    {
                        Cantidad       = i.FCRMVI_CANTID,
                        CodigoArticulo = i.FCRMVI_ARTCOD,
                        Precio         = i.FCRMVI_PRECIO,
                        TipoProducto   = i.FCRMVI_TIPPRO,
                        Total          = i.FCRMVI_TOTLIN
                    };
                    itemsp_.Add(itemActual);
                }

                var prevenResult = new PreventaInternalModel()
                {
                    FechaDesde      = p.FCRMVH_FCHDES,
                    FechaHasta      = p.FCRMVH_FCHHAS,
                    FechaMovimiento = p.FCRMVH_FCHMOV,
                    NumeroCliente   = p.FCRMVH_NROCTA,
                    UserName        = p.FCRMVH_USERID,
                    NumeroPreventa  = p.FCRMVH_NROFOR,
                    Observacion     = p.FCRMVH_TEXTOS,
                    ItemsPreventa   = itemsp_
                };
                preventas_.Add(prevenResult);
            }

            return(await Task.Run(() => preventas_.ToArray()));
        }
示例#9
0
        private List <ItemPreVenta> MapearItemPreVenta(PreventaInternalModel items, int LastPrevap, Cliente cliente)
        {
            DateTime?_fechaHasta;

            if (items.FechaHasta == null)
            {
                if (items.FechaDesde == null)
                {
                    _fechaHasta = items.FechaMovimiento;
                }
                else
                {
                    _fechaHasta = items.FechaDesde;
                }
            }
            else
            {
                _fechaHasta = items.FechaHasta;
            }

            List <ItemPreVenta> ItemsPreventa = new List <ItemPreVenta>();

            var nroItem = 0;

            foreach (var i in items.ItemsPreventa)
            {
                nroItem++;
                var articulo = _cabodiRepository.GetProductoPorTIPPRO_ARTCOD(i.TipoProducto, i.CodigoArticulo);

                var NewItem = new ItemPreVenta()
                {
                    FCRMVI_MODFOR = "FC",
                    FCRMVI_CODFOR = "PREVAP",
                    FCRMVI_NROFOR = LastPrevap + 1,//"OBTENER Nro PREVENTA",
                    FCRMVI_NROITM = nroItem,
                    FCRMVI_NIVEXP = "1",
                    FCRMVI_MODAPL = "FC",
                    FCRMVI_CODAPL = "PREVAP",
                    FCRMVI_NROAPL = LastPrevap + 1,//"OBTENER Nro PREVENTA",
                    FCRMVI_ITMAPL = nroItem,
                    FCRMVI_EXPAPL = "1",
                    FCRMVI_ARTCOD = i.CodigoArticulo,
                    FCRMVI_TIPPRO = i.TipoProducto,
                    FCRMVI_MODCPT = articulo.STMPDH_MODCPT,
                    FCRMVI_TIPCPT = articulo.STMPDH_TIPCPC,
                    FCRMVI_CODCPT = articulo.STMPDH_CODCPT,
                    FCRMVI_DEPOSI = "HAR001",
                    FCRMVI_SECTOR = "U",
                    FCRMVI_SUCURS = "0001",
                    FCRMVI_FACSEC = articulo.STMPDH_FACSEC,
                    FCRMVI_CNTSEC = i.Cantidad * articulo.STMPDH_FACSEC,
                    FCRMVI_TIPUNI = "F",
                    FCRMVI_FACFAC = 0,
                    FCRMVI_CNTFAC = i.Cantidad,
                    FCRMVI_UNIALT = articulo.STMPDH_UNIALT,
                    FCRMVI_FACALT = articulo.STMPDH_FACALT,
                    FCRMVI_CNTALT = i.Cantidad * articulo.STMPDH_FACALT,
                    FCRMVI_TIPORI = i.TipoProducto,
                    FCRMVI_ARTORI = i.CodigoArticulo,
                    FCRMVI_NROCTA = cliente.VTMCLH_NROCTA,
                    FCRMVI_NROSUB = cliente.VTMCLH_NROSUB,
                    FCRMVI_PRECIO = i.Precio,
                    FCRMVI_CANTID = i.Cantidad,
                    FCRMVI_UNIMED = articulo.STMPDH_UNIMED,
                    FCRMVI_UNICON = articulo.STMPDH_UNICON,
                    FCRMVI_FACCON = articulo.STMPDH_FACCON,
                    FCRMVI_CNTCON = i.Cantidad * articulo.STMPDH_FACCON,
                    FCRMVI_PCTBF1 = 0,
                    FCRMVI_PCTBF2 = 0,
                    FCRMVI_PCTBF3 = 0,
                    FCRMVI_PCTBF4 = 0,
                    FCRMVI_PCTBF5 = 0,
                    FCRMVI_PCTBF6 = 0,
                    FCRMVI_PCTBF7 = 0,
                    FCRMVI_PCTBF8 = 0,
                    FCRMVI_PCTBF9 = 0,
                    FCRMVI_PCTBFN = 0,
                    FCRMVI_TEXTOS = null,
                    FCRMVI_FCHENT = items.FechaDesde == null ? items.FechaMovimiento : items.FechaDesde,
                    FCRMVI_FCHHAS = _fechaHasta,
                    FCRMVI_MODORI = "FC",
                    FCRMVI_CODORI = "PREVAP",
                    FCRMVI_NROORI = LastPrevap + 1,
                    FCRMVI_ITMORI = nroItem,
                    FCRMVI_EXPORI = "1",
                    FCRMVI_CUENTA = articulo.STMPDH_CUENVT,
                    FCRMVI_CNTANT = 0,
                    FCRMVI_PORANT = 0,

                    FCRMVI_CANTST = i.Cantidad,
                    FCRMVI_CNTORI = i.Cantidad,
                    FCRMVI_NROINI = 0,
                    FCRMVI_ITMINI = 1,
                    FCRMVI_COFLIS = "PESOS",
                    FCRMVI_CAMBIO = 0,
                    FCRMVI_NROGAN = 0,
                    FCRMVI_CNTVAR = 0,
                    FCRMVI_CNTUNI = 0,
                    FCRMVI_FACTOR = 0,
                    FCRMVI_NCNPNA = "N",

                    FCRMVI_NROOST = 0,
                    FCRMVI_ITMOST = nroItem,
                    FCRMVI_EXPOST = "1",
                    FCRMVI_PREEXT = 0,
                    FCRMVI_PREUSS = 0,

                    FCRMVI_OALIAS = "FCRMVI",

                    FCRMVI_CNTBON = 0,
                    FCRMVI_PRENAC = i.Precio,
                    FCRMVI_TOTLIN = i.Total,
                    FCRMVI_USERID = items.UserName,
                    FCRMVI_CODEMP = "CABODI",
                    FCRMVI_EMPAPL = "CABODI",
                    FCRMVI_EMPORI = "CABODI",

                    FCRMVI_FECALT = items.FechaMovimiento
                };

                ItemsPreventa.Add(NewItem);
            }

            return(ItemsPreventa);
        }
示例#10
0
        private PreVenta MapearPreventa(PreventaInternalModel preventa, int LastPrevap, Cliente cliente)
        {
            DateTime?_fechaHasta;

            if (preventa.FechaHasta == null)
            {
                if (preventa.FechaDesde == null)
                {
                    _fechaHasta = preventa.FechaMovimiento;
                }
                else
                {
                    _fechaHasta = preventa.FechaDesde;
                }
            }
            else
            {
                _fechaHasta = preventa.FechaHasta;
            }

            var NewPreventa = new PreVenta()
            {
                FCRMVH_MODFOR = "FC",
                FCRMVH_CODFOR = "PREVAP",
                FCRMVH_NROFOR = LastPrevap + 1, //"OBTENER Nro PREVENTA",
                FCRMVH_NROGEN = LastPrevap + 1, //"OBTENER Nro PREVENTA",
                FCRMVH_CIRCOM = "0100",
                FCRMVH_CIRGEN = "0100",
                FCRMVH_CIRAPL = "0100",
                FCRMVH_SUCURS = "0001",
                FCRMVH_NROCTA = preventa.NumeroCliente,
                FCRMVH_NROSUB = preventa.NumeroCliente,
                FCRMVH_DIRENT = cliente.VTMCLH_DIRENT,
                FCRMVH_PAIENT = cliente.VTMCLH_PAIENT,
                FCRMVH_CODENT = cliente.VTMCLH_CODENT,
                FCRMVH_CAMION = cliente.VTMCLH_CAMION,
                FCRMVH_VNDDOR = cliente.VTMCLH_VNDDOR,
                FCRMVH_CNDPAG = cliente.VTMCLH_CNDPAG,
                FCRMVH_DEPOSI = "HAR001",
                FCRMVH_SECTOR = "U",
                FCRMVH_CODLIS = cliente.VTMCLH_CNDPRE,
                FCRMVH_JURISD = cliente.VTMCLH_JURISD,
                FCRMVH_CNDIVA = cliente.VTMCLH_CNDIVA,
                FCRMVH_CODZON = cliente.VTMCLH_CODZON,
                FCRMVH_ISPRCT = "N",
                FCRMVH_ULTOPR = "A",
                FCRMVH_DEBAJA = "N",
                FCRMVH_CODEMP = "CABODI",
                FCRMVH_EMPGEN = "CABODI",
                FCRMVH_EMPFST = "CABODI",
                FCRMVH_MODGEN = "FC",
                FCRMVH_CODGEN = "PREVAP",
                FCRMVH_COFLIS = "PESOS",
                FCRMVH_COFDEU = "PESOS",
                FCRMVH_COFFAC = "PESOS",
                FCRMVH_CAMBIO = 0,
                FCRMVH_CAMUSS = 0,
                FCRMVH_NROFCR = 0,
                FCRMVH_NROFST = 0,
                FCRMVH_CAMSEC = 0,
                FCRMVH_DIAENT = 0,
                FCRMVH_TEXTOS = preventa.Observacion,
                FCRMVH_FECLIS = preventa.FechaMovimiento.Date,
                FCRMVH_FECALT = preventa.FechaMovimiento,
                FCRMVH_FECMOD = preventa.FechaMovimiento,
                FCRMVH_CONGEL = "S",
                FCRMVH_FCHMOV = preventa.FechaMovimiento.Date,
                FCRMVH_FCHDES = preventa.FechaDesde == null ? preventa.FechaMovimiento : preventa.FechaDesde,
                FCRMVH_FCHHAS = _fechaHasta,
                FCRMVH_USERID = preventa.UserName,
                FCRMVH_OALIAS = "FCRMVH"
            };

            return(NewPreventa);
        }