//-------------- //Realizar Pago //--------------- public bool Ins_RealizarPago(string cPerJurCodigo, string cPerCodigo, long nPrdCodigo, string cTipCtaCodigo, string cCtaCteRecCargo, Dictionary <string, double> ListRecibo, string cPerUserCodigo, long nCajCodigo, long nCtaCteComCodigo, string cCtaCteComNumero, DateTime dFecRegistro, double ImporteTotal, double ImportePago, double ImporteAmortizado, string cCtaCteObserv, List <BE_ReqCtaCteDetalle> ReqCCDetalle) { bool exito = false; long nCtaCtaPagCodigo = 0; string cCtaCteRecAbono = ""; //double PagImporte=0; //DateTime sFecTrans = new DateTime() ; //CtaCtePago BL_CtaCtePago blCCPago = new BL_CtaCtePago(); //CtaCteComprobante BL_CtaCteComprobante BLComp = new BL_CtaCteComprobante(); //CtaCteDetalle DA_CtaCteDetalle daCCDet = new DA_CtaCteDetalle(); //CtaCteItem BL_CtaCteItem blCCItem = new BL_CtaCteItem(); //CtaCteIteLine BL_CtaCteIteLine blCCIteLine = new BL_CtaCteIteLine(); //CtaCteReferencia BL_CtaCteReferencia blCCRefe = new BL_CtaCteReferencia(); //Update CtaCteItem BL_CtaCteItem daCCItem = new BL_CtaCteItem(); //Update Correlativo BL_CtaCteNumeracion blCCNumeracion = new BL_CtaCteNumeracion(); try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { //Genera nuevo recibo pero en Negativo(-) en la tabla [CtaCteItem] cCtaCteRecAbono = blCCItem.Ins_CtaCteItem(cPerJurCodigo, cPerCodigo, nPrdCodigo, cTipCtaCodigo, dFecRegistro.Year, -ImportePago, dFecRegistro, 1); if (cCtaCteRecAbono == null) { throw new ApplicationException("Se encontro Nro. Recibo que va a cancelar: [Get_CtaCteItem].!"); } //-----------------/ //CtaCteComprobante //-----------------/ if (ImporteAmortizado == 0) { if (nCtaCteComCodigo == 3005) //Recibo Ingreso { long nCtaCteComCodigoComp = 0; string cCtaCteComNumeroComp = ""; BL_CtaCteNumeracion BLCorrelativo = new BL_CtaCteNumeracion(); //Genera Recibo (99) en CtaCteComprobante nCtaCteComCodigoComp = 3006; //RECIBO (REC) cCtaCteComNumeroComp = BLCorrelativo.Get_CtaCteNumCorrelativo(cPerJurCodigo, 0, nCtaCteComCodigoComp); if (!BLComp.Ins_CtaCteComprobante(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigoComp, cCtaCteComNumeroComp, dFecRegistro, ImporteTotal, cPerUserCodigo)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteComprobante].!"); } //Update Correlativo si pasa por este bucle Recibo 3006 BL_CtaCteNumeracion BLUpdCorrelativo = new BL_CtaCteNumeracion(); int valor = cCtaCteComNumeroComp.Length - 8; string resultCorre = cCtaCteComNumeroComp.Substring(valor, 8); long NumeroNew = 0; NumeroNew = Convert.ToInt32(resultCorre); if (!BLUpdCorrelativo.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, 0, nCtaCteComCodigoComp, NumeroNew)) { throw new ApplicationException("Se encontraron errores en la transaccion a Update nCtaCteComCodigo-3006: [Upd_CtaCteNumeracion_nCtaCteNumero].!"); } } else { if (!BLComp.Ins_CtaCteComprobante(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigo, cCtaCteComNumero, dFecRegistro, ImporteTotal, cPerUserCodigo)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteComprobante].!"); } } } //<- //-------------- //Ins_CtaCtePago //-------------- nCtaCtaPagCodigo = blCCPago.Ins_CtaCtePago(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigo, cCtaCteComNumero, cPerUserCodigo, cCtaCteObserv); //OUTPUT inserted.nCtaCtaPagCodigo (cm.ExecuteScalar()) //----------------- //Ins_CtaCteDetalle //----------------- foreach (BE_ReqCtaCteDetalle Item in ReqCCDetalle) { Item.nCtaCtePagCodigo = nCtaCtaPagCodigo; //paso el autogenerado de CtaCtePago(nCtaCtePagCodigo) exito = daCCDet.Ins_CtaCteDetalle(Item); //PagImporte = PagImporte + Item.nCtaCtePagImporte; //sFecTrans = Item.dCtaCteFecTransacion; if (!exito) { break; throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteDetalle].!"); } } //Nuevo Cambio if (ListRecibo.Count == 0) /*Pago Simple*/ { //---------------- //CtaCteReferencia //---------------- if (!blCCRefe.Ins_CtaCteReferencia(cPerJurCodigo, cPerCodigo, cCtaCteRecCargo, cCtaCteRecAbono, nCtaCtaPagCodigo, ImportePago, "", dFecRegistro)) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteReferencia].!"); } //------------------------------------ // Actualizar campo nCtaCteImpAplicado //------------------------------------ if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, cCtaCteRecCargo, ImportePago, "CANCELA")) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } } else { //Aqui tengo que recorrer los recibos seleccionados *Pago Multiple* foreach (KeyValuePair <string, double> pair in ListRecibo) { //---------------- //CtaCteReferencia //---------------- if (!blCCRefe.Ins_CtaCteReferencia(cPerJurCodigo, cPerCodigo, pair.Key, cCtaCteRecAbono, nCtaCtaPagCodigo, pair.Value, "", dFecRegistro)) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteReferencia].!"); } //------------------------------------ // Actualizar campo nCtaCteImpAplicado //------------------------------------ //if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, cCtaCteRecCargo, ImportePago, "CANCELA")) //PagImporte if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, pair.Key, pair.Value, "CANCELA")) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } } ListRecibo.Clear(); } //------------------------------------------- // Actualizar CtaCteNumeracion(nCtaCteNumero) //------------------------------------------- int value = cCtaCteComNumero.Length - 8; string result = cCtaCteComNumero.Substring(value, 8); long Numeracion = 0; Numeracion = Convert.ToInt32(result); if (!blCCNumeracion.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, nCajCodigo, nCtaCteComCodigo, Numeracion)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } tx.Complete(); } } catch (Exception) { throw; } return(exito); }
//-------------- //Realizar Pago //--------------- public bool Ins_RealizarPago(string cPerJurCodigo, string cPerCodigo, long nPrdCodigo, string cTipCtaCodigo, string cCtaCteRecCargo, Dictionary<string, double> ListRecibo, string cPerUserCodigo, long nCajCodigo, long nCtaCteComCodigo, string cCtaCteComNumero, DateTime dFecRegistro, double ImporteTotal, double ImportePago, double ImporteAmortizado, string cCtaCteObserv, List<BE_ReqCtaCteDetalle> ReqCCDetalle) { bool exito = false; long nCtaCtaPagCodigo = 0; string cCtaCteRecAbono = ""; //double PagImporte=0; //DateTime sFecTrans = new DateTime() ; //CtaCtePago BL_CtaCtePago blCCPago = new BL_CtaCtePago(); //CtaCteComprobante BL_CtaCteComprobante BLComp = new BL_CtaCteComprobante(); //CtaCteDetalle DA_CtaCteDetalle daCCDet = new DA_CtaCteDetalle(); //CtaCteItem BL_CtaCteItem blCCItem = new BL_CtaCteItem(); //CtaCteIteLine BL_CtaCteIteLine blCCIteLine = new BL_CtaCteIteLine(); //CtaCteReferencia BL_CtaCteReferencia blCCRefe = new BL_CtaCteReferencia(); //Update CtaCteItem BL_CtaCteItem daCCItem = new BL_CtaCteItem(); //Update Correlativo BL_CtaCteNumeracion blCCNumeracion = new BL_CtaCteNumeracion(); try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { //Genera nuevo recibo pero en Negativo(-) en la tabla [CtaCteItem] cCtaCteRecAbono = blCCItem.Ins_CtaCteItem(cPerJurCodigo, cPerCodigo, nPrdCodigo, cTipCtaCodigo, dFecRegistro.Year, -ImportePago, dFecRegistro, 1); if (cCtaCteRecAbono == null) { throw new ApplicationException("Se encontro Nro. Recibo que va a cancelar: [Get_CtaCteItem].!"); } //-----------------/ //CtaCteComprobante //-----------------/ if (ImporteAmortizado == 0) { if (nCtaCteComCodigo == 3005) //Recibo Ingreso { long nCtaCteComCodigoComp = 0; string cCtaCteComNumeroComp = ""; BL_CtaCteNumeracion BLCorrelativo = new BL_CtaCteNumeracion(); //Genera Recibo (99) en CtaCteComprobante nCtaCteComCodigoComp = 3006; //RECIBO (REC) cCtaCteComNumeroComp = BLCorrelativo.Get_CtaCteNumCorrelativo(cPerJurCodigo, 0, nCtaCteComCodigoComp); if (!BLComp.Ins_CtaCteComprobante(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigoComp, cCtaCteComNumeroComp, dFecRegistro, ImporteTotal, cPerUserCodigo)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteComprobante].!"); } //Update Correlativo si pasa por este bucle Recibo 3006 BL_CtaCteNumeracion BLUpdCorrelativo = new BL_CtaCteNumeracion(); int valor = cCtaCteComNumeroComp.Length - 8; string resultCorre = cCtaCteComNumeroComp.Substring(valor, 8); long NumeroNew = 0; NumeroNew = Convert.ToInt32(resultCorre); if (!BLUpdCorrelativo.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, 0, nCtaCteComCodigoComp, NumeroNew)) { throw new ApplicationException("Se encontraron errores en la transaccion a Update nCtaCteComCodigo-3006: [Upd_CtaCteNumeracion_nCtaCteNumero].!"); } } else { if (!BLComp.Ins_CtaCteComprobante(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigo, cCtaCteComNumero, dFecRegistro, ImporteTotal, cPerUserCodigo)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteComprobante].!"); } } } //<- //-------------- //Ins_CtaCtePago //-------------- nCtaCtaPagCodigo = blCCPago.Ins_CtaCtePago(cPerJurCodigo, cPerCodigo, cCtaCteRecAbono, nCajCodigo, nCtaCteComCodigo, cCtaCteComNumero, cPerUserCodigo, cCtaCteObserv); //OUTPUT inserted.nCtaCtaPagCodigo (cm.ExecuteScalar()) //----------------- //Ins_CtaCteDetalle //----------------- foreach (BE_ReqCtaCteDetalle Item in ReqCCDetalle) { Item.nCtaCtePagCodigo = nCtaCtaPagCodigo; //paso el autogenerado de CtaCtePago(nCtaCtePagCodigo) exito = daCCDet.Ins_CtaCteDetalle(Item); //PagImporte = PagImporte + Item.nCtaCtePagImporte; //sFecTrans = Item.dCtaCteFecTransacion; if (!exito) { break; throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteDetalle].!"); } } //Nuevo Cambio if (ListRecibo.Count == 0) /*Pago Simple*/ { //---------------- //CtaCteReferencia //---------------- if (!blCCRefe.Ins_CtaCteReferencia(cPerJurCodigo, cPerCodigo, cCtaCteRecCargo, cCtaCteRecAbono, nCtaCtaPagCodigo, ImportePago, "", dFecRegistro)) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteReferencia].!"); } //------------------------------------ // Actualizar campo nCtaCteImpAplicado //------------------------------------ if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, cCtaCteRecCargo, ImportePago, "CANCELA")) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } } else { //Aqui tengo que recorrer los recibos seleccionados *Pago Multiple* foreach (KeyValuePair<string, double> pair in ListRecibo) { //---------------- //CtaCteReferencia //---------------- if (!blCCRefe.Ins_CtaCteReferencia(cPerJurCodigo, cPerCodigo, pair.Key, cCtaCteRecAbono, nCtaCtaPagCodigo, pair.Value, "", dFecRegistro)) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCteReferencia].!"); } //------------------------------------ // Actualizar campo nCtaCteImpAplicado //------------------------------------ //if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, cCtaCteRecCargo, ImportePago, "CANCELA")) //PagImporte if (!daCCItem.Upd_CtaCteItem_nCtaCteImpAplicado(cPerJurCodigo, pair.Key, pair.Value, "CANCELA")) //PagImporte { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } } ListRecibo.Clear(); } //------------------------------------------- // Actualizar CtaCteNumeracion(nCtaCteNumero) //------------------------------------------- int value = cCtaCteComNumero.Length - 8; string result = cCtaCteComNumero.Substring(value, 8); long Numeracion = 0; Numeracion = Convert.ToInt32(result); if (!blCCNumeracion.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, nCajCodigo, nCtaCteComCodigo, Numeracion)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } tx.Complete(); } } catch (Exception) { throw; } return exito; }
//------------------------------------------------------------------------------------------------------------------ // Insert CtaCteComprobante / Upd-Medica.CtaCteNumeracion / Upd-AdmSolAtencion(nAdmSolEstado) / Upd CuentaCorriente //------------------------------------------------------------------------------------------------------------------ public bool Ins_CtaCteComprobante_Upd_AdmSolAtencion_Upd_CtaCteNumeracion(string cCtaCteRecibo, int nCtaCteComCodigo, string cCtaCteComNumero, int nCtaCteTipoPago, DateTime dCtaCteEmiFecha, string cPerJurCodigo, string nSolAdmNumero, int nAdmSolEstado, string cPerCodigoAut, int nCajCodigo) { bool exito = false; try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { //------------------------- //Insert CtaCteComprobante //------------------------- BL_CtaCteComprobante ObjComp = new BL_CtaCteComprobante(); if (!ObjComp.Ins_CtaCteComprobante(cCtaCteRecibo, nCtaCteComCodigo, cCtaCteComNumero, nCtaCteTipoPago, cPerCodigoAut, dCtaCteEmiFecha)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: CtaCteComprobante].!"); } //------------------------------------------- //Actualizando AdmSolAtencion (cCtaCteRecibo) //------------------------------------------- BL_FichaAtencion.BL_FichaAtencion Obj_UpdFichaAtencion = new BL_FichaAtencion.BL_FichaAtencion(); if (!Obj_UpdFichaAtencion.Upd_AdmSolAtencion_for_cPerJuridica_nSolAdmNumero(cPerJurCodigo, nSolAdmNumero, cCtaCteRecibo, nAdmSolEstado, cPerCodigoAut)) { throw new ApplicationException("Se encontraron errores en la transaccion: BL-Upd_AdmSolAtencion_for_cPerJuridica_nSolAdmNumero.!"); } //------------------------------------------ // Actualiza CuentaCorriente(cCtaCteRecibo) //------------------------------------------ BL_CuentaCorriente ObjCC = new BL_CuentaCorriente(); if (!ObjCC.Upd_CuentaCorriente(cCtaCteRecibo, dCtaCteEmiFecha)) { throw new ApplicationException("Se encontraron errores en la transaccion: BL-Upd_CuentaCorriente.!"); } //------------------------------------------- // Actualizar CtaCteNumeracion(nCtaCteNumero) //------------------------------------------- BL_CtaCteNumeracion blCCNumeracion = new BL_CtaCteNumeracion(); int value = cCtaCteComNumero.Length - 7; string result = cCtaCteComNumero.Substring(value, 7); long Numeracion = 0; Numeracion = Convert.ToInt32(result); if (!blCCNumeracion.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, nCajCodigo, nCtaCteComCodigo, Numeracion)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } else exito = true; tx.Complete(); } } catch (Exception) { throw; } return exito; }
//------------------------------------------------------------------------------------------------------------------ // Insert CtaCteComprobante / Upd-Medica.CtaCteNumeracion / Upd-AdmSolAtencion(nAdmSolEstado) / Upd CuentaCorriente //------------------------------------------------------------------------------------------------------------------ public bool Ins_CtaCteComprobante_Upd_AdmSolAtencion_Upd_CtaCteNumeracion(string cCtaCteRecibo, int nCtaCteComCodigo, string cCtaCteComNumero, int nCtaCteTipoPago, DateTime dCtaCteEmiFecha, string cPerJurCodigo, string nSolAdmNumero, int nAdmSolEstado, string cPerCodigoAut, int nCajCodigo) { bool exito = false; try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { //------------------------- //Insert CtaCteComprobante //------------------------- BL_CtaCteComprobante ObjComp = new BL_CtaCteComprobante(); if (!ObjComp.Ins_CtaCteComprobante(cCtaCteRecibo, nCtaCteComCodigo, cCtaCteComNumero, nCtaCteTipoPago, cPerCodigoAut, dCtaCteEmiFecha)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Insert: CtaCteComprobante].!"); } //------------------------------------------- //Actualizando AdmSolAtencion (cCtaCteRecibo) //------------------------------------------- BL_FichaAtencion.BL_FichaAtencion Obj_UpdFichaAtencion = new BL_FichaAtencion.BL_FichaAtencion(); if (!Obj_UpdFichaAtencion.Upd_AdmSolAtencion_for_cPerJuridica_nSolAdmNumero(cPerJurCodigo, nSolAdmNumero, cCtaCteRecibo, nAdmSolEstado, cPerCodigoAut)) { throw new ApplicationException("Se encontraron errores en la transaccion: BL-Upd_AdmSolAtencion_for_cPerJuridica_nSolAdmNumero.!"); } //------------------------------------------ // Actualiza CuentaCorriente(cCtaCteRecibo) //------------------------------------------ BL_CuentaCorriente ObjCC = new BL_CuentaCorriente(); if (!ObjCC.Upd_CuentaCorriente(cCtaCteRecibo, dCtaCteEmiFecha)) { throw new ApplicationException("Se encontraron errores en la transaccion: BL-Upd_CuentaCorriente.!"); } //------------------------------------------- // Actualizar CtaCteNumeracion(nCtaCteNumero) //------------------------------------------- BL_CtaCteNumeracion blCCNumeracion = new BL_CtaCteNumeracion(); int value = cCtaCteComNumero.Length - 7; string result = cCtaCteComNumero.Substring(value, 7); long Numeracion = 0; Numeracion = Convert.ToInt32(result); if (!blCCNumeracion.Upd_CtaCteNumeracion_nCtaCteNumero(cPerJurCodigo, nCajCodigo, nCtaCteComCodigo, Numeracion)) { throw new ApplicationException("Se encontraron errores en la transaccion: [Upd_CtaCteItem_nCtaCteImpAplicado].!"); } else { exito = true; } tx.Complete(); } } catch (Exception) { throw; } return(exito); }