public bool anularDB(fa_notaCreDeb_Info info) { try { #region Variables ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); cxc_cobro_Data odata_cobr = new cxc_cobro_Data(); #endregion using (Entities_facturacion db_f = new Entities_facturacion()) { #region Nota de debito credito #region Cabecera var entity = db_f.fa_notaCreDeb.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega && q.IdNota == info.IdNota).FirstOrDefault(); if (entity == null) { return(false); } entity.Estado = "I"; entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu; entity.Fecha_UltAnu = DateTime.Now; entity.MotiAnula = info.MotiAnula; #endregion var lst_cruce = db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).ToList(); db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.RemoveRange(lst_cruce); #endregion #region Contabilidad var rel_conta = db_f.fa_notaCreDeb_x_ct_cbtecble.Where(q => q.no_IdEmpresa == info.IdEmpresa && q.no_IdSucursal == info.IdSucursal && q.no_IdBodega == info.IdBodega && q.no_IdNota == info.IdNota).FirstOrDefault(); if (rel_conta != null) { if (!odata_ct.anularDB(new ct_cbtecble_Info { IdEmpresa = rel_conta.ct_IdEmpresa, IdTipoCbte = rel_conta.ct_IdTipoCbte, IdCbteCble = rel_conta.ct_IdCbteCble, IdUsuarioAnu = info.IdUsuarioUltAnu })) { entity.Estado = "A"; entity.IdUsuarioUltAnu = null; entity.Fecha_UltAnu = null; entity.MotiAnula = null; } } #endregion #region Cobranza var rel_cobr = db_f.fa_notaCreDeb_x_cxc_cobro.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).FirstOrDefault(); if (rel_cobr != null) { if (!odata_cobr.anularDB(new cxc_cobro_Info { IdEmpresa = rel_cobr.IdEmpresa_cbr, IdSucursal = rel_cobr.IdSucursal_cbr, IdCobro = rel_cobr.IdCobro_cbr, IdUsuarioUltAnu = info.IdUsuarioUltAnu })) { entity.Estado = "A"; entity.IdUsuarioUltAnu = null; entity.Fecha_UltAnu = null; entity.MotiAnula = null; } } #endregion db_f.SaveChanges(); } return(true); } catch (Exception) { throw; } }
public bool modificarDB(cp_retencion_Info info) { try { int sec = 1; using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar()) { var contact = Context.cp_retencion.FirstOrDefault(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion); if (contact != null) { if (string.IsNullOrEmpty(contact.NumRetencion)) { tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); var punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0); if (punto_venta != null) { info_documento = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2, punto_venta.EsElectronico, true); } contact.serie1 = info.serie1 = info_documento == null ? null : info_documento.Establecimiento; contact.serie2 = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision; contact.NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento; } //contact.IdPuntoVta = info.IdPuntoVta; contact.IdSucursal = info.IdSucursal; contact.fecha = info.fecha; contact.observacion = info.observacion; contact.IdUsuarioUltMod = info.IdUsuarioUltMod; contact.Fecha_UltMod = DateTime.Now; contact.IdUsuarioUltMod = info.IdUsuario; if (info.detalle != null) { var lista = Context.cp_retencion_det.Where(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion); Context.cp_retencion_det.RemoveRange(lista); foreach (var item in info.detalle) { cp_retencion_det Entity = new cp_retencion_det { IdEmpresa = info.IdEmpresa, IdRetencion = info.IdRetencion, Idsecuencia = sec, re_tipoRet = item.re_tipoRet, re_baseRetencion = (double)item.re_baseRetencion, IdCodigo_SRI = item.IdCodigo_SRI, re_Codigo_impuesto = item.re_Codigo_impuesto, re_valor_retencion = Math.Round((double)item.re_valor_retencion, 2, MidpointRounding.AwayFromZero), re_Porcen_retencion = (double)item.re_Porcen_retencion, re_estado = "A" }; Context.cp_retencion_det.Add(Entity); sec++; } } Context.SaveChanges(); if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01) { ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); var param = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (info.info_comprobante.IdTipoCbte == 0 ? Convert.ToInt32(param.pa_IdTipoCbte_x_Retencion) : info.info_comprobante.IdTipoCbte), 0, "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion, info.fecha); if (diario != null) { var rel = Context.cp_retencion_x_ct_cbtecble.Where(q => q.rt_IdEmpresa == info.IdEmpresa && q.rt_IdRetencion == info.IdRetencion).FirstOrDefault(); if (rel == null) { if (odata_ct.guardarDB(diario)) { Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble { rt_IdEmpresa = info.IdEmpresa, rt_IdRetencion = info.IdRetencion, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, Observacion = "Relacion" }); Context.SaveChanges(); } } else { diario.IdCbteCble = rel.ct_IdCbteCble; odata_ct.modificarDB(diario); } } } } } return(true); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_retencion_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuario }); return(false); } }
public bool modificarDB(fa_notaCreDeb_Info info) { try { #region Variables int Secuencia = 1; ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); cxc_cobro_Data odata_cobr = new cxc_cobro_Data(); #endregion using (Entities_facturacion db_f = new Entities_facturacion()) { #region Nota de debito credito #region Cabecera var entity = db_f.fa_notaCreDeb.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega && q.IdNota == info.IdNota).FirstOrDefault(); if (entity == null) { return(false); } entity.IdPuntoVta = info.IdPuntoVta; //entity.CodNota = info.CodNota; entity.CreDeb = info.CreDeb.Trim(); entity.CodDocumentoTipo = info.CodDocumentoTipo; entity.Serie1 = info.Serie1; entity.Serie2 = info.Serie2; entity.NumNota_Impresa = info.NumNota_Impresa; entity.NumAutorizacion = info.NumAutorizacion; entity.Fecha_Autorizacion = info.Fecha_Autorizacion; entity.IdCliente = info.IdCliente; entity.IdContacto = info.IdContacto; entity.no_fecha = info.no_fecha.Date; entity.no_fecha_venc = info.no_fecha_venc.Date; entity.IdTipoNota = info.IdTipoNota; entity.sc_observacion = info.sc_observacion; entity.NaturalezaNota = info.NaturalezaNota; entity.IdCtaCble_TipoNota = info.IdCtaCble_TipoNota; entity.IdUsuarioUltMod = info.IdUsuarioUltMod; entity.Fecha_UltMod = DateTime.Now; #endregion #region Detalle var lst = db_f.fa_notaCreDeb_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega && q.IdNota == info.IdNota).ToList(); db_f.fa_notaCreDeb_det.RemoveRange(lst); foreach (var item in info.lst_det) { db_f.fa_notaCreDeb_det.Add(new fa_notaCreDeb_det { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, IdNota = info.IdNota, Secuencia = Secuencia++, IdProducto = item.IdProducto, sc_cantidad = item.sc_cantidad, sc_cantidad_factura = item.sc_cantidad_factura, sc_Precio = item.sc_Precio, sc_descUni = item.sc_descUni, sc_PordescUni = item.sc_PordescUni, sc_precioFinal = item.sc_precioFinal, vt_por_iva = item.vt_por_iva, sc_iva = item.sc_iva, IdCod_Impuesto_Iva = item.IdCod_Impuesto_Iva, sc_estado = "A", sc_subtotal = item.sc_subtotal, sc_total = item.sc_total, IdCentroCosto = item.IdCentroCosto, IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo, IdPunto_Cargo = item.IdPunto_Cargo, IdPunto_cargo_grupo = item.IdPunto_cargo_grupo }); } #endregion #region Cruce var lst_cruce = db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).ToList(); db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.RemoveRange(lst_cruce); Secuencia = 1; foreach (var item in info.lst_cruce) { db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Add(new fa_notaCreDeb_x_fa_factura_NotaDeb { IdEmpresa_nt = info.IdEmpresa, IdSucursal_nt = info.IdSucursal, IdBodega_nt = info.IdBodega, IdNota_nt = info.IdNota, secuencia = Secuencia++, IdEmpresa_fac_nd_doc_mod = item.IdEmpresa_fac_nd_doc_mod, IdSucursal_fac_nd_doc_mod = item.IdSucursal_fac_nd_doc_mod, IdBodega_fac_nd_doc_mod = item.IdBodega_fac_nd_doc_mod, IdCbteVta_fac_nd_doc_mod = item.IdCbteVta_fac_nd_doc_mod, vt_tipoDoc = item.vt_tipoDoc, Valor_Aplicado = item.Valor_Aplicado, fecha_cruce = DateTime.Now, }); } #endregion db_f.SaveChanges(); #endregion #region Parametros var parametros = db_f.fa_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var cliente = db_f.fa_cliente.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdCliente == info.IdCliente).FirstOrDefault(); #endregion #region Contabilidad if (parametros != null) { var rel_conta = db_f.fa_notaCreDeb_x_ct_cbtecble.Where(q => q.no_IdEmpresa == info.IdEmpresa && q.no_IdSucursal == info.IdSucursal && q.no_IdBodega == info.IdBodega && q.no_IdNota == info.IdNota).FirstOrDefault(); ct_cbtecble_Info diario = armar_diario(info, info.CreDeb.Trim() == "C" ? (int)parametros.IdTipoCbteCble_NC : (int)parametros.IdTipoCbteCble_ND, cliente.IdCtaCble_cxc_Credito, info.IdCtaCble_TipoNota); if (diario != null) { if (rel_conta == null) { if (odata_ct.guardarDB(diario)) { db_f.fa_notaCreDeb_x_ct_cbtecble.Add(new fa_notaCreDeb_x_ct_cbtecble { no_IdEmpresa = info.IdEmpresa, no_IdSucursal = info.IdSucursal, no_IdBodega = info.IdBodega, no_IdNota = info.IdNota, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, observacion = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000")) }); db_f.SaveChanges(); } } else { diario.IdCbteCble = rel_conta.ct_IdCbteCble; odata_ct.modificarDB(diario); } } } #endregion #region Cobranza if (info.CreDeb.Trim() == "C" && info.lst_cruce.Count != 0) { cxc_cobro_Info cobro = armar_cobro(info); if (cobro != null) { var rel_cobr = db_f.fa_notaCreDeb_x_cxc_cobro.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).FirstOrDefault(); if (rel_cobr == null) { if (odata_cobr.guardarDB(cobro)) { db_f.fa_notaCreDeb_x_cxc_cobro.Add(new fa_notaCreDeb_x_cxc_cobro { IdEmpresa_nt = info.IdEmpresa, IdSucursal_nt = info.IdSucursal, IdBodega_nt = info.IdBodega, IdNota_nt = info.IdNota, IdEmpresa_cbr = cobro.IdEmpresa, IdSucursal_cbr = cobro.IdSucursal, IdCobro_cbr = cobro.IdCobro, Valor_cobro = Math.Round(info.lst_cruce.Sum(q => q.Valor_Aplicado), 2, MidpointRounding.AwayFromZero) }); db_f.SaveChanges(); } } else { cobro.IdCobro = rel_cobr.IdCobro_cbr; odata_cobr.modificarDB(cobro); } } } #endregion } return(true); } catch (Exception) { throw; } }
public Boolean guardarDB(cp_retencion_Info info) { Boolean res = true; tb_sis_Documento_Tipo_Talonario_Info info_documento = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); var punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0); if (punto_venta != null) { if (punto_venta.EsElectronico == true) { info_documento = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, punto_venta.codDocumentoTipo, punto_venta.Su_CodigoEstablecimiento, punto_venta.cod_PuntoVta, punto_venta.EsElectronico, true); } else { info_documento.IdEmpresa = info.IdEmpresa; info_documento.CodDocumentoTipo = info.CodDocumentoTipo; info_documento.Establecimiento = info.serie1; info_documento.PuntoEmision = info.serie2; info_documento.NumDocumento = info.NumRetencion; info_documento.IdSucursal = info.IdSucursal; info_documento.Usado = true; data_talonario.modificar_estado_usadoDB(info_documento); } } try { using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar()) { var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault(); if (lstf != null) { return(false); } Context.cp_retencion.Add(new cp_retencion { IdEmpresa = info.IdEmpresa, IdEmpresa_Ogiro = info.IdEmpresa_Ogiro, IdCbteCble_Ogiro = info.IdCbteCble_Ogiro, IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro, IdRetencion = info.IdRetencion = get_id(info.IdEmpresa), CodDocumentoTipo = info.CodDocumentoTipo = "RETEN", serie1 = info.serie1 = info_documento == null ? null : info_documento.Establecimiento, serie2 = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision, NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento, NAutorizacion = info.NAutorizacion, observacion = info.observacion, fecha = info.fecha.Date, Estado = "A", IdPuntoVta = info.IdPuntoVta, IdSucursal = info.IdSucursal, Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, }); int Secuencia = 1; foreach (var item in info.detalle) { Context.cp_retencion_det.Add(new cp_retencion_det { IdEmpresa = info.IdEmpresa, IdRetencion = info.IdRetencion, Idsecuencia = Secuencia++, re_tipoRet = item.re_tipoRet, re_Codigo_impuesto = item.re_Codigo_impuesto, re_baseRetencion = (double)item.re_baseRetencion, re_Porcen_retencion = (double)item.re_Porcen_retencion, re_valor_retencion = (double)item.re_valor_retencion, IdCodigo_SRI = item.IdCodigo_SRI, IdUsuario = info.IdUsuario, re_estado = "A" }); } Context.SaveChanges(); if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01) { ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); var param = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0, "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion , info.fecha); var prov = data_proveedor.get_info(info.IdEmpresa, info.IdProveedor); if (prov != null) { if (diario.cb_Observacion == null) { diario.cb_Observacion = ""; } diario.cb_Observacion = "Prov: " + prov.info_persona.pe_nombreCompleto + " FAC# " + info.co_serie + "-" + info.co_factura + " OBS: " + diario.cb_Observacion; } odata_ct.guardarDB(diario); Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble { rt_IdEmpresa = info.IdEmpresa, rt_IdRetencion = info.IdRetencion, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, Observacion = "Relacion" }); Context.SaveChanges(); } } return(res); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_retencion_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario }); return(false); } }