예제 #1
0
        public ActionResult editMovimientos(int DocumentoId, int MovimientoId,
                                            [FromBody] JsonPatchDocument <Movimientos> movimientosChanges)
        {
            PlantillasContext db = new PlantillasContext();

            if (movimientosChanges == null)
            {
                return(BadRequest());
            }

            Movimientos movimiento =
                db.Movimientos.FirstOrDefault(x => x.Documentoid == DocumentoId && x.NumeroMovimiento == MovimientoId);

            if (movimiento == null)
            {
                return(NotFound());
            }

            movimientosChanges.ApplyTo(movimiento, ModelState);

            var isValid = TryValidateModel(movimiento);

            if (!isValid)
            {
                return(BadRequest());
            }

            db.SaveChanges();
            return(NoContent());
        }
예제 #2
0
        public ActionResult editCabecera(int DocumentoId, [FromBody] JsonPatchDocument <Cabeceras> cabeceraChanges)
        {
            PlantillasContext db = new PlantillasContext();

            if (cabeceraChanges == null)
            {
                return(BadRequest());
            }

            Cabeceras cabecera = db.Cabeceras.FirstOrDefault(x => x.Documentoid == DocumentoId);

            if (cabecera == null)
            {
                return(NotFound());
            }

            cabeceraChanges.ApplyTo(cabecera, ModelState);

            var isValid = TryValidateModel(cabecera);

            if (!isValid)
            {
                return(BadRequest());
            }

            db.SaveChanges();
            return(NoContent());
        }
예제 #3
0
        public ActionResult editDocumento(int DocumentoId, [FromBody] JsonPatchDocument <Documentos> documentoChanges)
        {
            PlantillasContext db = new PlantillasContext();

            if (documentoChanges == null)
            {
                return(BadRequest());
            }

            Documentos doc = db.Documentos.FirstOrDefault(x => x.Documentoid == DocumentoId);

            if (doc == null)
            {
                return(NotFound());
            }

            documentoChanges.ApplyTo(doc, ModelState);

            var isValid = TryValidateModel(doc);

            if (!isValid)
            {
                return(BadRequest());
            }

            db.SaveChanges();
            return(NoContent());
        }
예제 #4
0
        public ActionResult getPlantillas(int?DocumentoId, int Page, int Size)
        {
            PlantillasContext db = new PlantillasContext();
            string            jsonresponse;

            if (DocumentoId != null)
            {
                Documentos documento = db.Documentos.FirstOrDefault(x => x.Documentoid == DocumentoId);

                if (documento == null)
                {
                    return(BadRequest("El id de la plantilla no existe."));
                }

                documento.Cabeceras = db.Cabeceras.FirstOrDefault(x => x.Documentoid == DocumentoId);

                documento.Movimientos = db.Movimientos.Where(x => x.Documentoid == DocumentoId).ToList();

                Plantilla plantillaCompleta = new Plantilla(documento);

                jsonresponse = JsonSerializer.Serialize(plantillaCompleta);

                return(Ok(jsonresponse));
            }

            List <DocumentoPlantilla> documentosPlantilla = new List <DocumentoPlantilla>();

            try
            {
                var plantillas = (from doc in db.Documentos
                                  join cabecera in db.Cabeceras on doc.Documentoid equals cabecera.Documentoid
                                  select new { doc, codigoClienteProveedor = cabecera.CodigoCteProv }).Skip((Page - 1) * Size)
                                 .Take(Size).OrderByDescending(x => x.doc.Documentoid);

                foreach (var item in plantillas)
                {
                    Documentos         documento = item.doc;
                    DocumentoPlantilla doc       = new DocumentoPlantilla(documento, item.codigoClienteProveedor);
                    documentosPlantilla.Add(doc);
                }
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }

            int total = db.Documentos.Count();

            ListOfPlantillas listOfPlantillas = new ListOfPlantillas(documentosPlantilla, Page, total);

            jsonresponse = JsonSerializer.Serialize(listOfPlantillas);

            return(Ok(jsonresponse));
        }
예제 #5
0
        public static void checkForPlantillas()
        {
            using (var db = new PlantillasContext())
            {
                var documentosPlantillas = db.Documentos.ToList();
                foreach (var documento in documentosPlantillas)
                {
                    if (!documento.Estatus)
                    {
                        continue;
                    }
                    if (documento.ProximaFactura == DateTime.Today)
                    {
                        int hora = documento.ProximaFactura.Value.Hour;
                        DocumentoServices documentoServices = new DocumentoServices();
                        var cabecera   = db.Cabeceras.FirstOrDefault(x => x.Documentoid == documento.Documentoid);
                        var movimiento = db.Movimientos.Where(x => x.Documentoid == documento.Documentoid).ToList();

                        Documento factura = new Documento
                        {
                            cabecera = new Cabecera
                            {
                                numMoneda     = cabecera.NumMoneda,
                                serie         = new StringBuilder(cabecera.Serie),
                                tipoCambio    = cabecera.TipoCambio,
                                codConcepto   = cabecera.CodConcepto,
                                codigoCteProv = cabecera.CodigoCteProv
                            },
                            movimientos = new List <Movimiento>()
                        };

                        movimiento.ForEach(x => factura.movimientos.Add(new Movimiento
                        {
                            codAlmacen  = x.CodAlmacen,
                            codProducto = x.CodProducto,
                            precio      = x.Precio,
                            unidades    = x.Unidades
                        }));

                        factura.docEnPlantiila.isPlantilla = true;
                        factura.docEnPlantiila.idPlantilla = documento.Documentoid;

                        BackgroundJob.Schedule(() => documentoServices.createDocumento(factura),
                                               TimeSpan.FromHours(hora));
                    }
                }
            }
        }
예제 #6
0
        public static bool updatePlantilla(Documento documento)
        {
            PlantillasContext db  = new PlantillasContext();
            Documentos        doc =
                db.Documentos.FirstOrDefault(x => x.Documentoid == documento.docEnPlantiila.idPlantilla);

            try
            {
                doc.ProximaFactura.Value.AddDays(doc.PeriodoDias.Value);
            }
            catch (Exception e)
            {
                return(false);
            }
            return(true);
        }
예제 #7
0
        public static bool addPlantilla(Documento documento)
        {
            using (var db = new PlantillasContext())
            {
                int noPlantillas = db.Documentos.Count();
                int nextId;

                if (noPlantillas != 0)
                {
                    nextId = db.Documentos.Max(x => x.Documentoid) + 1;
                }
                else
                {
                    nextId = 1;
                }

                var factura = new Documentos
                {
                    Documentoid = nextId,
                    Estatus     = false
                };
                try
                {
                    db.Documentos.Add(factura);
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }

                DateTime fechaCabecera = DateTime.ParseExact(documento.cabecera.fecha, "MM/dd/yyyy", CultureInfo.InvariantCulture);

                var cabecera = new Cabeceras
                {
                    Documentoid   = factura.Documentoid,
                    NumMoneda     = documento.cabecera.numMoneda,
                    Serie         = documento.cabecera.serie.ToString(),
                    TipoCambio    = documento.cabecera.tipoCambio,
                    CodConcepto   = documento.cabecera.codConcepto,
                    CodigoCteProv = documento.cabecera.codigoCteProv
                };

                db.Cabeceras.Add(cabecera);

                for (int i = 1; i < documento.movimientos.Count; i++)
                {
                    var movimientodb = new Movimientos
                    {
                        Documentoid      = factura.Documentoid,
                        NumeroMovimiento = i,
                        CodAlmacen       = documento.movimientos[i].codAlmacen,
                        CodProducto      = documento.movimientos[i].codProducto,
                        Precio           = documento.movimientos[i].precio,
                        Unidades         = documento.movimientos[i].unidades
                    };
                    db.Movimientos.Add(movimientodb);
                }

                try
                {
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }

            return(true);
        }