public bool Guardar(uFacturaEDatos.Comprobante comprobante, uFacturaEDatos.Operaciones.Recibo.Recibos recibo) { bool resultado = false; try { var vComprobante = from cf in _db.Comprobantes where cf.idComprobante == comprobante.idComprobante select cf; if (vComprobante.Count() == 0) { comprobante.Folio = Convert.ToInt32(_db.GenerarFolioComprobante(comprobante.idDocumento, comprobante.idSucursal)); _db.Comprobantes.InsertOnSubmit(comprobante); if (recibo != null) { if (recibo.Cuotas != null) { foreach (uFacturaEDatos.T_Cuotas cuota in recibo.Cuotas) { cuota.Facturado = 'S'; cuota.NoFactura = comprobante.Folio; cuota.FecPago = comprobante.FechaEmision; cuota.Cantidad = cuota.Cantidad; var vCuota = from ct in _db.T_Cuotas where ct.ID == cuota.ID select ct; if (vCuota.Count() > 0) { //verificamos si ya se facturo una vez if (vCuota.First().Cantidad == null) { vCuota.First().Facturado = 'S'; vCuota.First().NoFactura = comprobante.Folio; vCuota.First().FecPago = comprobante.FechaEmision; vCuota.First().Cantidad = cuota.Cantidad; } else { if (vCuota.First().Cantidad == "") { vCuota.First().Facturado = 'S'; vCuota.First().NoFactura = comprobante.Folio; vCuota.First().FecPago = comprobante.FechaEmision; vCuota.First().Cantidad = cuota.Cantidad; } else { uFacturaEDatos.T_Cuotas ncuota = new T_Cuotas(); ncuota.Facturado = 'S'; ncuota.NoFactura = comprobante.Folio; ncuota.FecPago = comprobante.FechaEmision; ncuota.Cantidad = cuota.Cantidad; ncuota.FecPago = vCuota.First().FecPago; ncuota.SocioID = vCuota.First().SocioID; ncuota.SucursalID = vCuota.First().SucursalID; ncuota.MesID = vCuota.First().MesID; ncuota.Linea = vCuota.First().Linea; ncuota.Fecha = vCuota.First().Fecha; _db.T_Cuotas.InsertOnSubmit(ncuota); } } } } } } } _db.SubmitChanges(); resultado = true; } catch (Exception ex) { resultado = false; _mensajeErrorSistema = ex.Message; GrabarLogError(ex); throw new Exception("No fué posible guardar el comprobante.:" + ex.Message); } return(resultado); }
public bool Guardar(Recibos recibo) { bool resultado = false; try { // Obtenemos El Folio del recibo if (recibo.bCambioFol) { //Eliminamos el registro anterior Eliminar(recibo.recibo.SucursalID, recibo.recibo.RemRecId); // } else { var vfolio = from fol in _db.T_Folios where fol.IdSucursal == recibo.recibo.SucursalID && fol.FolioId == recibo.tipo select fol; vfolio.First().Contador = recibo.recibo.RemRecId + 1; } var vConcepto = from recip in _db.T_RemRec where recip.RemRecId == recibo.recibo.RemRecId && recip.SucursalID == recibo.recibo.SucursalID select recip; if (vConcepto.Count() == 0) { _db.T_RemRec.InsertOnSubmit(recibo.recibo); foreach (T_RemRecDet x in recibo.ReciboDet) { x.RemRecId = recibo.recibo.RemRecId; _db.T_RemRecDet.InsertOnSubmit(x); } if (recibo.Cuotas != null) { foreach (T_Cuotas c in recibo.Cuotas) { var vCuota = from cuot in _db.T_Cuotas where cuot.ID == c.ID select cuot; if (vCuota.Count() == 0) { _db.T_Cuotas.InsertOnSubmit(c); } else { if (vCuota.First().NoRemision == null) { vCuota.First().FecPago = c.FecPago; vCuota.First().NoRemision = recibo.recibo.RemRecId; vCuota.First().Cantidad = decimal.Parse(c.Cantidad).ToString("$##,##0.00"); vCuota.First().SucursalID = c.SucursalID; } else { T_Cuotas cuo = new T_Cuotas(); cuo.FecPago = c.FecPago; cuo.NoRemision = recibo.recibo.RemRecId; cuo.Cantidad = decimal.Parse(c.Cantidad).ToString("$##,##0.00"); cuo.SucursalID = c.SucursalID; cuo.Fecha = vCuota.First().Fecha; cuo.MesID = vCuota.First().MesID; cuo.SocioID = vCuota.First().SocioID; _db.T_Cuotas.InsertOnSubmit(cuo); } } } } if (recibo.formadepago != null) { List <T_Pagos> pagos = new List <T_Pagos>(); foreach (DetPago c in recibo.formadepago) { T_Pagos pago = new T_Pagos(); pago.Importe = c.Importe; pago.PagoID = c.PagoID; pago.ReciboID = recibo.recibo.RemRecId; pago.Cancelado = 'N'; pago.Fecha = (DateTime)recibo.recibo.Fecha; pagos.Add(pago); } _db.T_Pagos.InsertAllOnSubmit(pagos); } _db.SubmitChanges(); resultado = true; } else { resultado = false; _mensajeErrorSistema = ""; } } catch (Exception ex) { resultado = false; _mensajeErrorSistema = ex.Message; GrabarLogError(ex); throw new Exception("No fué posible guardar el recibo"); } return(resultado); }
public void creacuotas(int socioID, int Mes, int año, bool Nuevo, int SucursalID, Boolean anual) { int mes = Mes; int reno = 0; if (anual) { if (Nuevo) { elminacuotas(socioID, SucursalID); uFacturaEDatos.T_Cuotas cuot = new T_Cuotas(); cuot.SocioID = socioID; cuot.Fecha = DateTime.Parse("01/" + Mes + "/" + año); cuot.MesID = "INS"; cuot.SucursalID = SucursalID; Guardar(cuot); } else { var vreins = from concept in _db.T_Cuotas where concept.SocioID == socioID && (concept.MesID.Contains("INS") || concept.MesID.Contains("Re")) orderby concept.Fecha descending select concept; string strRe = ""; string Tipo = "INS"; string gratis = ""; if (vreins.Count() > 0) { strRe = vreins.First().MesID.Substring(2); bool isInt = int.TryParse(strRe, out reno); if (!isInt) { Tipo = "Re1"; reno = 1; } else { reno++; Tipo = "Re" + reno.ToString(); if (reno > 2) { gratis = "Cortesia"; } } //eliminamos las otras cuotas y creamos las nuevas elminacuotas(socioID, SucursalID); uFacturaEDatos.T_Cuotas cuot = new T_Cuotas(); cuot.SocioID = socioID; cuot.Fecha = DateTime.Parse("01/" + Mes + "/" + año); cuot.MesID = Tipo; cuot.SucursalID = SucursalID; cuot.Cantidad = gratis; if (cuot.Cantidad == "Cortesia") { cuot.FecPago = DateTime.Today; } Guardar(cuot); } } } if (!anual) { int dia = 1; DateTime fecha = DateTime.Parse("01/" + mes + "/" + año); for (int i = 1; i <= lastMonthDay(fecha); i++) { uFacturaEDatos.T_Cuotas cuot = new T_Cuotas(); cuot.SocioID = socioID; cuot.SucursalID = SucursalID; cuot.Fecha = DateTime.Parse(dia + "/" + mes + "/" + año); if (dia < 10) { cuot.MesID = '0' + dia.ToString(); } else { cuot.MesID = dia.ToString(); } if (cuot.Fecha.Value.DayOfWeek != DayOfWeek.Sunday) { Guardar(cuot); } dia++; } } else { string gratis = ""; for (int i = 1; i <= 12; i++) { uFacturaEDatos.T_Cuotas cuot = new T_Cuotas(); cuot.SocioID = socioID; cuot.SucursalID = SucursalID; cuot.Fecha = DateTime.Parse("02/" + mes + "/" + año); cuot.MesID = DateTime.Parse("02/" + mes + "/" + año).ToString("MMM").ToUpper(); mes++; if (mes > 12) { mes = 1; año++; } Guardar(cuot); } } }