public ActionResult Create([Bind(Include = "NOTA_ABONO_ID,USUARIO_ID,CLIENTE_ID,SERIE_DOC_ID,NRO_NOTA_ABONO,FECHA_EMISION,SUBTOTAL,TOTAL,ANULADA,CAUSA_ANULADA,ESTADO_DOC,PAGOS,FECHA_ACTUALIZADO,FECHA_VENCIMIENTO, DESCRIPCION")] NOTA_ABONO nOTA_ABONO) { if (ModelState.IsValid) { nOTA_ABONO.USUARIO_ID = 1; nOTA_ABONO.ANULADA = false; nOTA_ABONO.ESTADO_DOC = false; nOTA_ABONO.SUBTOTAL = nOTA_ABONO.TOTAL; db.NOTA_ABONO.Add(nOTA_ABONO); db.SaveChanges(); DOCS_CC docs_cc = new DOCS_CC(); SERIE_DOCUMENTO sERIE = db.SERIE_DOCUMENTO.Find(nOTA_ABONO.SERIE_DOC_ID); docs_cc.TIPO_DOC_ID = sERIE.TIPO_DOC_ID; docs_cc.USUARIO_ID = 1; docs_cc.CLIENTE_ID = nOTA_ABONO.CLIENTE_ID; docs_cc.NRO_DOC = nOTA_ABONO.NRO_NOTA_ABONO; docs_cc.FECHA_EMISION = nOTA_ABONO.FECHA_EMISION; docs_cc.MONTO_DOC = nOTA_ABONO.TOTAL; docs_cc.MONTO_PARCIAL = nOTA_ABONO.TOTAL; docs_cc.FECHA_HORA = DateTime.Now; docs_cc.TIPO = "A"; docs_cc.FECHA_VENCIMIENTO = nOTA_ABONO.FECHA_VENCIMIENTO; docs_cc.NRO_PAGOS = 0; docs_cc.BALANCE = nOTA_ABONO.TOTAL; db.DOCS_CC.Add(docs_cc); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.CLIENTE_ID = new SelectList(db.CLIENTE, "CLIENTE_ID", "NOMBRE_CLTE", nOTA_ABONO.CLIENTE_ID); ViewBag.SERIE_DOC_ID = new SelectList(db.SERIE_DOCUMENTO, "SERIE_DOC_ID", "SERIE", nOTA_ABONO.SERIE_DOC_ID); ViewBag.USUARIO_ID = new SelectList(db.USUARIO, "USUARIO_ID", "NOMBRE_COMPLETO", nOTA_ABONO.USUARIO_ID); return(View(nOTA_ABONO)); }
public decimal?GetMontoDocumento(int?id) { decimal?valdocumento = null; if (id.HasValue && id.Value > 0) { DOCS_CC dOCS = db.DOCS_CC.Find(id); valdocumento = dOCS.BALANCE; } return(valdocumento); }
public ActionResult Create([Bind(Include = "FACTURA_ID,USUARIO_ID,CLIENTE_ID,SERIE_DOC_ID,NRO_FACTURA,FECHA_EMISION,SUBTOTAL,TOTAL,ANULADA,CAUSA_ANULADA,ESTADO_DOC,PAGOS,FECHA_ACTUALIZADO, FECHA_VENCIMIENTO")] FACTURA fACTURA) { if (ModelState.IsValid) { fACTURA.USUARIO_ID = 1; fACTURA.ANULADA = false; fACTURA.ESTADO_DOC = false; fACTURA.SUBTOTAL = fACTURA.TOTAL; fACTURA.PAGOS = 0; db.FACTURA.Add(fACTURA); db.SaveChanges(); DOCS_CC docs_cc = new DOCS_CC(); SERIE_DOCUMENTO sERIE = db.SERIE_DOCUMENTO.Find(fACTURA.SERIE_DOC_ID); docs_cc.TIPO_DOC_ID = sERIE.TIPO_DOC_ID; docs_cc.USUARIO_ID = 1; docs_cc.CLIENTE_ID = fACTURA.CLIENTE_ID; docs_cc.NRO_DOC = fACTURA.NRO_FACTURA; docs_cc.FECHA_EMISION = fACTURA.FECHA_EMISION; docs_cc.MONTO_DOC = fACTURA.TOTAL; docs_cc.MONTO_PARCIAL = fACTURA.TOTAL; docs_cc.FECHA_HORA = DateTime.Now; docs_cc.TIPO = "C"; docs_cc.DESC_DOC = "Factura No. " + fACTURA.NRO_FACTURA; docs_cc.FECHA_VENCIMIENTO = fACTURA.FECHA_VENCIMIENTO; docs_cc.NRO_PAGOS = 0; docs_cc.BALANCE = fACTURA.TOTAL; docs_cc.ID_ORIGEN = db.FACTURA.Where(f => f.NRO_FACTURA == fACTURA.NRO_FACTURA).Select(f => f.FACTURA_ID).FirstOrDefault(); db.DOCS_CC.Add(docs_cc); db.SaveChanges(); return(RedirectToAction("Create")); } ViewBag.CLIENTE_ID = new SelectList(db.CLIENTE, "CLIENTE_ID", "NOMBRE_CLTE", fACTURA.CLIENTE_ID); ViewBag.SERIE_DOC_ID = new SelectList(db.SERIE_DOCUMENTO, "SERIE_DOC_ID", "SERIE", fACTURA.SERIE_DOC_ID); ViewBag.USUARIO_ID = new SelectList(db.USUARIO, "USUARIO_ID", "NOMBRE_COMPLETO", fACTURA.USUARIO_ID); return(View(fACTURA)); }
public ActionResult GuardarRecibo(int CLIENTE_ID, DateTime FECHA_EMISION, int FORMA_PAGO_ID, string NRO_DOC_PAGO, int NRO_RECIBO, int SERIE_DOC_ID, decimal TOTAL, RECIBO_DETALLE[] reciboDet) { string result = "Error! Recibo no completado!"; if (NRO_RECIBO != null && CLIENTE_ID != null) { RECIBO model = new RECIBO(); model.USUARIO_ID = 1; model.CLIENTE_ID = CLIENTE_ID; model.FORMA_PAGO_ID = FORMA_PAGO_ID; model.NRO_RECIBO = NRO_RECIBO; model.FECHA_EMISION = FECHA_EMISION; model.SUBTOTAL = TOTAL; model.TOTAL = TOTAL; model.NRO_DOC_PAGO = NRO_DOC_PAGO; model.SERIE_DOC_ID = SERIE_DOC_ID; db.RECIBO.Add(model); db.SaveChanges(); foreach (var i in reciboDet) { SqlConnection connection = new SqlConnection(db.Database.Connection.ConnectionString); using (var cmd = new SqlCommand(String.Empty, connection)) { cmd.CommandType = CommandType.Text; cmd.CommandText = "insert into RECIBO_DETALLE (RECIBO_ID, FACTURA_ID, MONTO, TIPO_DOC_ID, DOC_NRO)" + " values (@RECIBO_ID, @FACTURA_ID, @MONTO, @TIPO_DOC_ID, @DOC_NRO)"; cmd.Parameters.AddWithValue("@RECIBO_ID", db.RECIBO.OrderByDescending(r => r.RECIBO_ID).Select(r => r.RECIBO_ID).FirstOrDefault()); cmd.Parameters.AddWithValue("@FACTURA_ID", db.DOCS_CC.Where(d => d.DOC_ID == i.FACTURA_ID).Select(d => d.ID_ORIGEN).FirstOrDefault()); cmd.Parameters.AddWithValue("@MONTO", i.MONTO); cmd.Parameters.AddWithValue("@TIPO_DOC_ID", i.TIPO_DOC_ID); cmd.Parameters.AddWithValue("@DOC_NRO", i.DOC_NRO); try { connection.Open(); cmd.ExecuteNonQuery(); connection.Close(); } catch (SqlException e) { result = e.ToString(); return(Json(result, JsonRequestBehavior.AllowGet)); } } } foreach (var i in reciboDet) { if (i.TIPO_DOC_ID == 1) //Si es factura lo que cancelan { /*Actualizo datos de factura*/ #region FACTURA fACTURA = db.FACTURA.FirstOrDefault(f => f.NRO_FACTURA == i.DOC_NRO); fACTURA.FECHA_ACTUALIZADO = DateTime.Today; fACTURA.PAGOS = fACTURA.PAGOS.HasValue ? fACTURA.PAGOS + i.MONTO : i.MONTO; if (fACTURA.TOTAL - fACTURA.PAGOS == 0) { fACTURA.ESTADO_DOC = true; } else { fACTURA.ESTADO_DOC = false; } db.Entry(fACTURA).State = EntityState.Modified; db.SaveChanges(); #endregion /*Para guardar el recibo en tabla DOCS_CC */ #region DOCS_CC dOCS = new DOCS_CC(); dOCS.TIPO_DOC_ID = 2; dOCS.FORMA_PAGO_ID = FORMA_PAGO_ID; dOCS.USUARIO_ID = 1; dOCS.CLIENTE_ID = CLIENTE_ID; dOCS.NRO_DOC = NRO_RECIBO; //db.RECIBO.OrderByDescending(r => r.RECIBO_ID).Select(r => r.NRO_RECIBO).FirstOrDefault(); dOCS.FECHA_EMISION = FECHA_EMISION; dOCS.DESC_DOC = "Pago de factura No. " + i.DOC_NRO; dOCS.MONTO_DOC = i.MONTO; dOCS.MONTO_PARCIAL = i.MONTO; dOCS.NRO_PAGOS = 1; dOCS.BALANCE = 0; dOCS.NRO_DOC_PAGADO = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == fACTURA.NRO_FACTURA).Select(f => f.NRO_DOC).FirstOrDefault(); dOCS.ID_PAGADO = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == fACTURA.NRO_FACTURA).Select(f => f.DOC_ID).FirstOrDefault(); dOCS.FECHA_HORA = DateTime.Now; dOCS.ID_BASE = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == fACTURA.NRO_FACTURA).Select(f => f.DOC_ID).FirstOrDefault(); dOCS.TIPO = "A"; db.DOCS_CC.Add(dOCS); db.SaveChanges(); #endregion /*Para actualizar factura en DOCS_CC*/ #region DOCS_CC dOC1 = db.DOCS_CC.Find(dOCS.ID_PAGADO); dOC1.NRO_PAGOS = dOC1.NRO_PAGOS + 1; dOC1.BALANCE = dOC1.BALANCE - i.MONTO; dOC1.NRO_DOC_PAGADO = dOCS.NRO_DOC; dOC1.ID_PAGADO = dOCS.DOC_ID; dOC1.FECHA_PAGADO = FECHA_EMISION; db.Entry(dOC1).State = EntityState.Modified; db.SaveChanges(); #endregion } else if (i.TIPO_DOC_ID == 3) //Si es nota de cargo lo que cancelan { /*Actualizo datos de nota de cargo*/ #region Actualizar nota de cargo NOTA_CARGO nOTA_CARGO = db.NOTA_CARGO.FirstOrDefault(n => n.NRO_NOTA_CARGO == i.DOC_NRO); nOTA_CARGO.FECHA_ACTUALIZADO = DateTime.Today; nOTA_CARGO.PAGOS = nOTA_CARGO.PAGOS.HasValue ? nOTA_CARGO.PAGOS + i.MONTO : i.MONTO; if (nOTA_CARGO.TOTAL - nOTA_CARGO.PAGOS == 0) { nOTA_CARGO.ESTADO_DOC = true; } else { nOTA_CARGO.ESTADO_DOC = false; } db.Entry(nOTA_CARGO).State = EntityState.Modified; db.SaveChanges(); #endregion /*Para guardar el recibo en tabla DOCS_CC */ #region guardar recibo en DOCS_CC DOCS_CC dOCS = new DOCS_CC(); dOCS.TIPO_DOC_ID = 2; dOCS.FORMA_PAGO_ID = FORMA_PAGO_ID; dOCS.USUARIO_ID = 1; dOCS.CLIENTE_ID = CLIENTE_ID; dOCS.NRO_DOC = NRO_RECIBO; //db.RECIBO.OrderByDescending(r => r.RECIBO_ID).Select(r => r.NRO_RECIBO).FirstOrDefault(); dOCS.FECHA_EMISION = FECHA_EMISION; dOCS.DESC_DOC = "Pago de Nota de cargo No. " + nOTA_CARGO.NRO_NOTA_CARGO; dOCS.MONTO_DOC = i.MONTO; dOCS.MONTO_PARCIAL = i.MONTO; dOCS.NRO_PAGOS = 1; dOCS.BALANCE = 0; dOCS.NRO_DOC_PAGADO = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == nOTA_CARGO.NRO_NOTA_CARGO).Select(f => f.NRO_DOC).FirstOrDefault(); dOCS.ID_PAGADO = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == nOTA_CARGO.NRO_NOTA_CARGO).Select(f => f.DOC_ID).FirstOrDefault(); dOCS.FECHA_HORA = DateTime.Now; dOCS.ID_BASE = db.DOCS_CC.Where(f => f.TIPO_DOC_ID == i.TIPO_DOC_ID && f.NRO_DOC == nOTA_CARGO.NRO_NOTA_CARGO).Select(f => f.DOC_ID).FirstOrDefault(); dOCS.TIPO = "A"; db.DOCS_CC.Add(dOCS); db.SaveChanges(); #endregion /*Para actualizar NOTA_CARGO en DOCS_CC*/ #region actualizar NOTA_CARGO en DOCS_CC DOCS_CC dOC1 = db.DOCS_CC.Find(dOCS.ID_PAGADO); dOC1.NRO_PAGOS = dOC1.NRO_PAGOS + 1; dOC1.BALANCE = dOC1.BALANCE - i.MONTO; dOC1.NRO_DOC_PAGADO = dOCS.NRO_DOC; dOC1.ID_PAGADO = dOCS.DOC_ID; dOC1.FECHA_PAGADO = FECHA_EMISION; db.Entry(dOC1).State = EntityState.Modified; db.SaveChanges(); #endregion } } result = "Recibo guardado con exito!"; } return(Json(result, JsonRequestBehavior.AllowGet)); }