public void btn_GrabarRetenciones(object sender, EventArgs e)
        {
            oRecibo = this.retornaRecibo();
            int cont = 0;
              /*      foreach (RepeaterItem r in Repeater1.Items)
            {
                TextBox txt = (TextBox)r.FindControl("txtRetenciones");

                if (txt.Text != "")
                {
                    oRecibo.Docid_imputados[cont].importeRetenciones = Convert.ToDecimal(txt.Text);
                }
                cont++;
            }

               */
            GrabarPago();
        }
        public void btn_Pago_Click(object sender, EventArgs e)
        {
            oRecibo = this.retornaRecibo();
            if (oRecibo == null)
            {
                Page.Validate("pago");
                return;
            }
            decimal totalaPagar = 0;
            //traigo las facturas elegidas por el usuario
            List<docImputados> facts = this.CtaCte1.listaFacturas(ref totalaPagar);
            List<docImputados> factsNoElegidas = this.CtaCte1.listaFacturasNoElegidas(ref totalaPagar);

            oRecibo.Docid_imputados = new List<docImputados>();
            oRecibo.Docid_imputados = facts;
            oRecibo.Docid_imputados_no_elegidos = new List<docImputados>();
            oRecibo.Docid_imputados_no_elegidos = factsNoElegidas;
            //reviso si es necesario pedirle que discrimine las retenciones por factura.
            if (!PedirRetenciones(facts)) //Si no es necesario, voy directo a mostrarle el detalle para confirmar.
            {
                 GrabarPago();
            }
        }
        public void GrabarPago()
        {
            oRecibo = this.retornaRecibo();

            if (oRecibo != null)
            {
                try
                {
                    bool validoretenciones = true;
                    decimal totalaPagar = 0;
                    oRecibo.Docid_imputados = this.CtaCte1.listaFacturas(ref totalaPagar);
                    decimal sobrantepago = oRecibo.PagoInformado.importe.Valor - totalaPagar;

                    //oRecibo.Docid_imputados_no_elegidos = this.CtaCte1.listaFacturasNoElegidas(ref totalaPagarNoelegidas);
                    validoretenciones = LLenarFacturaRetenciones();
                    if (oRecibo.Docid_imputados == null)
                    {

                        ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "Seleccione las facturas a pagar";
                        Panel2_ModalPopupExtender.Enabled = true;
                        this.Panel2_ModalPopupExtender.Show();
                        return;
                    }
                    if (!validoretenciones)
                    {
                        ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "La discriminación de retenciones debe coincidir con lo ingresado en la pantalla inicial.";
                        Panel2_ModalPopupExtender.Enabled = true;
                        this.Panel2_ModalPopupExtender.Show();
                        return;
                    }

                    if (config.EsFacturador)
                    {
                        if (EstadoElegido.SelectedValue == null || EstadoElegido.SelectedValue == "")
                        {
                            ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "Debe seleccionar el estado con que ingresa el pago. ";
                            Panel2_ModalPopupExtender.Enabled = true;
                            this.Panel2_ModalPopupExtender.Show();
                            return;
                        }

                    }

                    //Chequeo que las retenciones no sean mayor al 30% del pago.
                    if (oRecibo.conRetenciones > (oRecibo.PagoInformado.importe.Valor - oRecibo.conRetenciones) * 50 / 100)
                    {
                        ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "El valor de las retenciones no puede ser mayor al 50% del pago.";
                        lbl_errorimporte.Text = "El valor de las retenciones no puede ser mayor al 50% del pago.";
                        Panel2_ModalPopupExtender.Enabled = true;
                        this.Panel2_ModalPopupExtender.Show();
                        return;

                    }

                    if (oRecibo.Docid_imputados != null)
                    {
                        TextBox imp;
                        imp = (TextBox)FindControl("txt_importeE");
                        if (totalaPagar * 200 < (decimal.Parse(imp.Text)))
                        {
                            lbl_errorimporte.Text = "Verifique el importe, está abonando mas del doble de la deuda";
                        }
                        else
                            lbl_errorimporte.Text = "";
                        List<docImputados> documentos = oRecibo.Docid_imputados;
                        calcularPagosParciales(ref documentos, oRecibo.PagoInformado.importe.Valor);
                        oRecibo.Docid_imputados = documentos;

                        if (sobrantepago > 0)
                        {
                            List<docImputados> documentosNoelegidos;
                            documentosNoelegidos = oRecibo.Docid_imputados_no_elegidos;
                            calcularPagosParcialesNoelegidas(ref documentosNoelegidos, sobrantepago);
                            if (documentosNoelegidos != null)
                                oRecibo.Docid_imputados.AddRange(documentosNoelegidos);
                        }

                        //Reviso cuales tengo que pagar de prepo.

                         if (oRecibo.Docid_imputados.Count == 1)
                          {
                                 oRecibo.Docid_imputados[0].importeRetenciones = oRecibo.conRetenciones ;
                          }

                        mostrarDatos(documentos, oRecibo);

                        Fin_PopupExtender1.Show();

                    }
                }
                catch (Exception ex)
                {
                    ((Label)EbuyPopup1.FindControl("lbl_error")).Text = ex.Message;
                    this.Panel2_ModalPopupExtender.Show();
                }
            }
        }
        /// <summary>
        /// carga los datos en el popup para que el usuario los confirme
        /// </summary>
        void mostrarDatos(List<docImputados> documentos, RecibosEbuy recibo)
        {
            ((EbuyLabel)EbuyPopup2.FindControl("lbl_importe")).Text = recibo.Importe.ToString().Replace(",", ".");
            ((EbuyLabel)EbuyPopup2.FindControl("lbl_fechaDep")).Text = recibo.fechaDeposito.ToString();
            ((BulletedList)EbuyPopup2.FindControl("lbl_facturasN")).Items.Clear();
            foreach (docImputados DocI in documentos)
            {
                decimal suma = DocI.importePagado ;

                ((BulletedList)EbuyPopup2.FindControl("lbl_facturasN")).Items.Add(DocI.numFactura + " - $ " + suma);
                //if (lbl_facturasN.Text == "")
                //    lbl_facturasN.Text = DocI.numFactura.ToString() + " - $ " + DocI.importePagado;
                //else
                //{
                //    lbl_facturasN.Text = ", " + DocI.numFactura.ToString() + " - $ " + DocI.importePagado;
                //}
            }
            ((EbuyLabel)EbuyPopup2.FindControl("lbl_transaccionN")).Text = recibo.PagoInformado.transaccion;
            ((EbuyLabel)EbuyPopup2.FindControl("lbl_mediodePago")).Text = this.tipoPago.descripcion;
        }
        /// <summary>
        /// finaliza el proceso de alta luego de la confirmación del usuario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void finalizarAlta(object sender, EventArgs e)
        {
            oRecibo = this.retornaRecibo();
            //oRecibo = (RecibosEbuy) ViewState["Recibo"];

            if (oRecibo != null)
            {
                /*try
                {*/
                    decimal totalaPagar = 0;
                    oRecibo.Docid_imputados = this.CtaCte1.listaFacturas(ref totalaPagar);

                    decimal sobrantepago = oRecibo.PagoInformado.importe.Valor - totalaPagar;
                    LLenarFacturaRetenciones();
                    if (oRecibo.Docid_imputados != null)
                    {
                        List<docImputados> documentos = oRecibo.Docid_imputados;
                        calcularPagosParciales(ref documentos, oRecibo.PagoInformado.importe.Valor);
                        oRecibo.Docid_imputados = documentos;

                        if (sobrantepago > 0)
                        {
                            oRecibo.Docid_imputados_no_elegidos = this.CtaCte1.listaFacturasNoElegidas(ref sobrantepago);
                            List<docImputados> documentosNoelegidos;
                            documentosNoelegidos = oRecibo.Docid_imputados_no_elegidos;
                            calcularPagosParcialesNoelegidas(ref documentosNoelegidos, sobrantepago);
                            if (documentosNoelegidos != null)
                                oRecibo.Docid_imputados.AddRange(documentosNoelegidos);
                        }

                        if (oRecibo.Docid_imputados.Count == 1)
                        {
                            oRecibo.Docid_imputados[0].importeRetenciones = oRecibo.conRetenciones;
                        }
                        EstadosFact est = EstadosFact.Pago_en_Revision;
                        if (oRecibo.Rec_Docid != -1)
                        {

                            string reciboInt = ds.putRecibo(oRecibo, this.tipoPago.idTipoPago, esEbuy,Socio).ToString();

                            if (reciboInt == "-1")
                            {
                                ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "¡ATENCION! Está ingresando el mismo pago nuevamente, si necesita repetir el pago, espere 2 minutos.";
                                this.Panel2_ModalPopupExtender.Show();
                                return;
                            }

                            lbl_numRecibo.Text = reciboInt;
                            string recibo = "";
                            if (config.EsFacturador)
                            {

                                if (Txt_ReciboSerie.Text != "" && Txt_ReciboNumero.Text != "")
                                 recibo = Txt_ReciboSerie.Text + "-" + Txt_ReciboNumero.Text;

                                if (EstadoElegido.SelectedValue == "8")
                                {
                                    est = EstadosFact.Pago_Aceptado;
                                }
                                else
                                {
                                    est = EstadosFact.Pago_en_Revision;
                                }

                            }
                            ds.updateRecibo("", Convert.ToInt16(est), Convert.ToInt32(reciboInt), recibo,Socio);
                        }
                        else
                        {
                            ds.AplicarPagoPendiente(oRecibo);
                        }
                        //ds.RedondearSobranteFaltante(Convert.ToInt32(oRecibo.Rec_Docid));
                        CtaCte1.ejecutado = 0;
                        CtaCte1.ClearGridView();
                        CtaCte1.actGrilla();
                        this.limpiaCampos();
                        CtaCte1.resetFactSelec();
                        //txt_empresa.Text = "";
                        if (est == EstadosFact.Pago_en_Revision)
                        {
                            ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "Su pago ha sido ingresado y quedará en revisión.";
                        }
                        else
                        {
                            ((Label)EbuyPopup1.FindControl("lbl_error")).Text = "El pago ha sido ingresado y aceptado.";
                        }
                        EbuyPopup1.Titulo = "Mensaje del sistema";
                        Repeater1.DataSource = null;
                        Repeater1.DataBind();
                        this.Panel2_ModalPopupExtender.Show();

                    }
                /* }
                 catch (Exception ex)
                 {
                     ((Label)EbuyPopup1.FindControl("lbl_error")).Text = ex.Message;
                     this.Panel2_ModalPopupExtender.Show();
                 }*/
            }
        }
Example #6
0
 RecibosEbuy valida5Porc(RecibosEbuy oRecibo)
 {
     decimal mas5;
     decimal menos5;
     decimal sumaFacturas =0;
     foreach (docImputados di in oRecibo.Docid_imputados)
     {
         sumaFacturas += di.importeF;
     }
     mas5 = (sumaFacturas * (decimal)1.05);
     menos5 = (sumaFacturas * (decimal)0.95);
     if (oRecibo.PagoInformado.importe.Valor <= mas5 & oRecibo.PagoInformado.importe.Valor >= menos5)
     {
         oRecibo.PagoInformado.importe.Valor = sumaFacturas;
     }
     return oRecibo;
 }
Example #7
0
 public void AplicarPagoPendiente(RecibosEbuy oRecibo)
 {
     FactDataProvider.AplicarPagoPendiente(oRecibo);
 }
Example #8
0
 /// <summary>
 /// carga los datos en el popup para que el usuario los confirme
 /// </summary>
 void mostrarDatos(List<docImputados> documentos, RecibosEbuy recibo)
 {
     lbl_importe.Text = recibo.Importe.ToString().Replace(",", ".");
     lbl_fechaDep.Text = recibo.fechaDeposito.ToString();
     foreach (docImputados DocI in documentos)
     {
         if (lbl_facturasN.Text == "")
             lbl_facturasN.Text = DocI.idFactura.ToString() + " - $ " + DocI.importePagado;
         else
         {
             lbl_facturasN.Text = ", " + DocI.idFactura.ToString() + " - $ " + DocI.importePagado;
         }
     }
     lbl_transaccionN.Text = recibo.PagoInformado.transaccion;
     lbl_mediodePago.Text = this.InformePago1.tipoPago.descripcion;
 }
Example #9
0
 /// <summary>
 /// guarda los datos del recibo
 /// </summary>
 /// <param name="oRecibo"></param>
 /// <param name="tipoPago"></param>
 public int putRecibo(RecibosEbuy oRecibo,int tipoPago,bool esebuy, string socio)
 {
     valida5Porc(oRecibo);
     try
     {
         return FactDataProvider.putRecibo(oRecibo, tipoPago, esebuy, socio);
     }
         catch(Exception ex)
     {
         throw new Exception(ex.Message);
         }
 }
Example #10
0
        public void parametrizarRecibo(out SqlParameter[] parametros, RecibosEbuy oRecibo, int tipoPago, string socio)
        {
            try
            {
                SqlParameter[] param = new SqlParameter[14];

                param[0] = new SqlParameter("@fechaInforme", oRecibo.fechaInforme);

                param[1] = new SqlParameter("@fechaDeposito", oRecibo.fechaDeposito);

                if (EbuyFuncion.FechaEsCero(oRecibo.PagoInformado.datosCheque.fechaDiferida)== null)
                {
                    param[2] = new SqlParameter("@fechaAcreditacion", System.DateTime.Now);

                }
                else
                {
                    param[2] = new SqlParameter("@fechaAcreditacion", oRecibo.PagoInformado.datosCheque.fechaDiferida);
                }

                param[3] = new SqlParameter("@Importe", SqlDbType.Decimal);
                param[3].Value = oRecibo.Importe;
                param[4] = new SqlParameter("@estado", SqlDbType.Int);
                param[4].Value = (int) oRecibo.estado;
                param[5] = new SqlParameter("@userId", SqlDbType.VarChar);
                param[5].Value = oRecibo.userId;
                param[6] = new SqlParameter("@monid", SqlDbType.VarChar);
                param[6].Value = oRecibo.monid;
                param[7] = new SqlParameter("@provId", SqlDbType.VarChar);
                param[7].Value = oRecibo.provId;
                param[8] = new SqlParameter("@tipoPago", SqlDbType.Int);
                param[8].Value = tipoPago;
                param[9] = new SqlParameter("@conRetenciones", SqlDbType.Decimal);
                param[9].Value = oRecibo.conRetenciones;
                param[10] = new SqlParameter("@IdRecibo", SqlDbType.Int);
                param[10].Direction = ParameterDirection.Output;
                param[10].Value = "";
                param[11] = new SqlParameter("@ReciboId", SqlDbType.VarChar);
                param[11].Value = oRecibo.ReciboId;
                param[12] = new SqlParameter("@ModoPago", SqlDbType.Int);
                param[12].Value = oRecibo.ModoPago.ID ;
                param[13] = new SqlParameter("@Socio", SqlDbType.Int);
                param[13].Value = socio;

                parametros = param;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Example #11
0
        public RecibosEbuy castDR(IDataReader dr)
        {
            RecibosEbuy item = new RecibosEbuy();
               docImputados docs = new docImputados();
               try
               {

               if (dr["conRetenciones"] is System.DBNull)
               {
                   item.conRetenciones = 0;
               }
               else
               {
                   item.conRetenciones = (decimal)dr["conRetenciones"];
               }
               if (!(dr["estado"] is System.DBNull))
               {
                   item.estado = (EstadosFact) Convert.ToInt16(dr["estado"]);
               }

               if (dr["fechaInforme"] is System.DBNull)
               {
                   item.fechaInforme = DateTime.Parse("01/01/1900");
               }
               else
               {
                   item.fechaInforme = (DateTime)dr["fechaInforme"];
               }
               if (dr["Importe"] is System.DBNull)
               {
                   item.Importe = 0;
               }
               else
               {
                   item.Importe = (decimal)dr["Importe"];
               }
               if (dr["monid"] is System.DBNull)
               {
                   item.monid = "";
               }
               else
               {
                   item.monid = (string)dr["monid"];
               }
               if (dr["pagoTipo"] is System.DBNull)
               {
                   item.pagoTipo = "";
               }
               else
               {
                   item.pagoTipo = (string)dr["pagoTipo"];
               }
               if (dr["Importe_Parcial"] is System.DBNull)
               {
                   item.Importe_Parcial = 0;
               }
               else
               {
                   item.Importe_Parcial = (decimal)dr["Importe_Parcial"];
               }
               if (dr["ReciboId"] is System.DBNull)
               {
                   item.ReciboId = "";
               }
               else
               {
                   item.ReciboId = (string)dr["ReciboId"];
               }
               if (dr["Rec_Docid"] is System.DBNull)
               {
                   item.Rec_Docid = 0;
               }
               else
               {
                   item.Rec_Docid = (decimal)dr["Rec_Docid"];
               }

               //Nuevos campos.
                if (dr["ModoPago"] is System.DBNull)
                {
                    item.ModoPago.ID = 0;
                    item.ModoPago.descripcion = "";

                }
                else
                {
                    item.ModoPago.ID = (int)dr["ModoPago"];
                    item.ModoPago.descripcion = (string)dr["ModoPagoDescripcion"];

                }

                if (dr["Factura_DocId"] is System.DBNull)
                {
                    docs.idFactura = "0";

                }
                else
                {
                    docs.idFactura = dr["Factura_DocId"].ToString();
                }
                if (dr["RetencionFactura"] is System.DBNull)
                {
                    docs.importeRetenciones = 0;

                }
                else
                {
                    docs.importeRetenciones = Convert.ToDecimal(dr["RetencionFactura"]);
                }

                List<docImputados> listaDocs = new List<docImputados>();
                listaDocs.Add(docs);
                item.Docid_imputados = listaDocs;

               }
               catch (Exception e)
               {

               throw new Exception(e.Message);
               }

               return item;
        }
Example #12
0
        /// <summary>
        /// trae los recibos asociados a varias facturas. La factura debe tener el docid. Con eso alcanza
        /// </summary>
        /// <param name="idFactura"></param>
        /// <returns></returns>
        public List<RecibosEbuy> getRecibosdeUnaFact(List<Factura_cabecera>  facturas)
        {
            SqlParameter[] param = new SqlParameter[1];
            RecibosEbuy item = new RecibosEbuy();
            string cadena ="";
            foreach (Factura_cabecera f in facturas)
            {
               cadena += f.docid + ",";

            }

            param[0] = new SqlParameter("@Factura_DocId", cadena);
            List<RecibosEbuy> lista = new List<RecibosEbuy>();

            datosSQL.ConGenerico = false;
            datosSQL.Parametros = param;
            datosSQL.Stored = "COCG_FEBUY_recibosAsocFact";
            lector = ebSQL.ExecuteSPReader(datosSQL);
            while (lector.Read())
            {
                lista.Add(item.castDR(lector));
            }

            lector.Close();
            //EbuySqlFact.ExecuteSP(out lista,"FEBUY_monedas", param, false);
            return lista;
        }
Example #13
0
        /// <summary>
        /// trae los recibos asociados a una factura
        /// </summary>
        /// <param name="idFactura"></param>
        /// <returns></returns>
        public List<RecibosEbuy> getRecibosdeUnaFact(string idFactura)
        {
            SqlParameter[] param = new SqlParameter[1];
            RecibosEbuy item = new RecibosEbuy();

            param[0] = new SqlParameter("@Factura_DocId",idFactura);
            List<RecibosEbuy> lista = new List<RecibosEbuy>();

            datosSQL.ConGenerico = false;
            datosSQL.Parametros = param;
            datosSQL.Stored = "COCG_FEBUY_recibosAsocFact";
            lector = ebSQL.ExecuteSPReader(datosSQL);
            while (lector.Read())
            {
                lista.Add(item.castDR(lector));
            }

            lector.Close();
            //EbuySqlFact.ExecuteSP(out lista,"FEBUY_monedas", param, false);
            return lista;
        }
Example #14
0
        /// <summary>
        /// Trae un recibo
        /// </summary>
        /// <param name="idFactura"></param>
        /// <returns></returns>
        public RecibosEbuy getRecibo(int reciboint)
        {
            SqlParameter[] param = new SqlParameter[1];
            RecibosEbuy item = new RecibosEbuy();

            param[0] = new SqlParameter("@reciboint", reciboint);
            RecibosEbuy recibo = new RecibosEbuy();

            datosSQL.ConGenerico = false;
            datosSQL.Parametros = param;
            datosSQL.Stored = "COCG_FEBUY_Recibo";
            DataSet ds = ebSQL.ExecuteSP(datosSQL);
            DataTable dt = ds.Tables[0];
            DataRow dr = dt.Rows[0];
            recibo.estado = (EstadosFact)(Convert.ToInt16(dr["Estado"]));
            recibo.Importe = (Convert.ToDecimal(dr["Importe"]));
            recibo.conRetenciones = (Convert.ToDecimal(dr["conRetenciones"]));
            recibo.Rec_Docid = (Convert.ToInt16(dr["Rec_Docid"]));
            //recibo.estado = (EstadosFact)(Convert.ToInt16(dr["Estado"]));

            //EbuySqlFact.ExecuteSP(out lista,"FEBUY_monedas", param, false);
            return recibo;
        }
Example #15
0
        public void AplicarPagoPendiente(RecibosEbuy oRecibo)
        {
            List<docImputados> ldi = oRecibo.Docid_imputados;

                if (ldi.Count == 0)
                    throw new Exception();
                SqlParameter[] param3;

                foreach (docImputados dci in ldi)
                {
                    param3 = new SqlParameter[5];
                    param3[0] = new SqlParameter("@Factura_DocId", SqlDbType.VarChar);
                    param3[0].Value = dci.idFactura;
                    param3[1] = new SqlParameter("@Importe_Parcial", SqlDbType.Decimal);
                    param3[1].Value = dci.importePagado;
                    param3[2] = new SqlParameter("@estadoF", SqlDbType.Int);
                    if (dci.importePagado == dci.importeF)
                    {
                        param3[2].Value = 3;
                    }
                    else
                        param3[2].Value = 0;
                    param3[3] = new SqlParameter("@provID", SqlDbType.VarChar);
                    param3[3].Value = oRecibo.provId;
                    param3[4] = new SqlParameter("@Retenciones", SqlDbType.Decimal);
                    param3[4].Value = dci.importeRetenciones;

                    datosSQL.ConGenerico = false;
                    datosSQL.Parametros = param3;
                    datosSQL.Stored = "COIG_FEBUY_putAsocFactReciboPendiente";

                    ebSQL.ExecuteNonQuery(datosSQL);
                }
        }
Example #16
0
        public int putRecibo(RecibosEbuy oRecibo, int tipoPago,bool esebuy, string socio)
        {
            int idRecibo;
            ebSQL.BeginTran();
            SqlParameter[] param = new SqlParameter[12];
            try
            {

                if (oRecibo.Rec_Docid == -1 || oRecibo.Rec_Docid == 0)
                {

                    parametrizarRecibo(out param, oRecibo, tipoPago, socio);

                    datosSQL.ConGenerico = false;
                    datosSQL.Parametros = param;
                    datosSQL.Stored = "COIG_FEBUY_putRecibo";

                    DataSet ds = ebSQL.ExecuteSP(datosSQL);
                    int error = Convert.ToInt16(ds.Tables[0].Rows[0]["Error"].ToString());

                    if (error != 0)
                    {
                        return -1;

                    }

                    idRecibo = (int)param[10].Value;
                    SqlParameter[] param2;

                    switch (tipoPago)
                    {
                        case 1:

                            param2 = new SqlParameter[6];
                            param2[0] = new SqlParameter("@Rec_Docid", SqlDbType.Int);
                            param2[0].Value = idRecibo;
                            param2[1] = new SqlParameter("@bancoId", SqlDbType.Int);
                            param2[1].Value = oRecibo.PagoInformado.bancoId;
                            param2[2] = new SqlParameter("@Importe", SqlDbType.Decimal);
                            param2[2].Value = oRecibo.PagoInformado.importe.Valor;
                            param2[3] = new SqlParameter("@transaccion", SqlDbType.VarChar);
                            param2[3].Value = oRecibo.PagoInformado.transaccion;
                            param2[4] = new SqlParameter("@observaciones", SqlDbType.VarChar);
                            param2[4].Value = oRecibo.PagoInformado.observaciones;
                            param2[5] = new SqlParameter("@Sucursal", SqlDbType.VarChar);
                            if (oRecibo.PagoInformado.datosEfectivo.Banco != null)
                                param2[5].Value = oRecibo.PagoInformado.datosEfectivo.Banco.Sucursal;
                            else
                                param2[5].Value = 0;
                            datosSQL.ConGenerico = false;
                            datosSQL.Parametros = param2;
                            datosSQL.Stored = "COIG_FEBUY_putReciboPagoEfvo";

                            //idRecibo = EbuySqlFact.ExecuteSP(oRecibo, oRecibo.Docid_imputados, "COIG_FEBUY_putRecibo", "COIG_FEBUY_putReciboPagoEfvo", param, param2, false);
                            break;
                        case 2:
                            param2 = new SqlParameter[9];
                            param2[0] = new SqlParameter("@Rec_Docid", SqlDbType.Int);
                            param2[0].Value = idRecibo;
                            param2[1] = new SqlParameter("@bancoId", SqlDbType.Int);
                            param2[1].Value = oRecibo.PagoInformado.bancoId;
                            param2[2] = new SqlParameter("@Importe", SqlDbType.Decimal);
                            param2[2].Value = oRecibo.PagoInformado.importe.Valor;
                            param2[3] = new SqlParameter("@transaccion", SqlDbType.VarChar);
                            param2[3].Value = oRecibo.PagoInformado.transaccion;
                            param2[4] = new SqlParameter("@observaciones", SqlDbType.VarChar);
                            param2[4].Value = oRecibo.PagoInformado.observaciones;
                            param2[5] = new SqlParameter("@nroCheque", SqlDbType.VarChar);
                            param2[5].Value = oRecibo.PagoInformado.datosCheque.nroCheque;
                            param2[6] = new SqlParameter("@bancoIddeDeposito", SqlDbType.Int);
                            param2[6].Value = oRecibo.PagoInformado.datosCheque.BancoDestino.bank_id;
                            param2[7] = new SqlParameter("@sucursal", SqlDbType.VarChar);
                            param2[7].Value = oRecibo.PagoInformado.datosCheque.sucursal;
                            param2[8] = new SqlParameter("@fechadiferida", oRecibo.PagoInformado.datosCheque.fechaDiferida);
                            //param2[8].Value = oRecibo.PagoInformado.datosCheque.fechaDiferida;
                            datosSQL.ConGenerico = false;
                            datosSQL.Parametros = param2;
                            datosSQL.Stored = "COIG_FEBUY_putReciboPagoCheque";
                            //idRecibo = EbuySqlFact.ExecuteSP(oRecibo, oRecibo.Docid_imputados, "COIG_FEBUY_putRecibo", "COIG_FEBUY_putReciboPagoCheque", param, param2, false);

                            break;
                        case 3:
                            param2 = new SqlParameter[6];
                            param2[0] = new SqlParameter("@Rec_Docid", SqlDbType.Int);
                            param2[0].Value = idRecibo;
                            param2[1] = new SqlParameter("@bancoId", SqlDbType.Int);
                            param2[1].Value = oRecibo.PagoInformado.datosTransferencia.bancoIDDesde;
                            param2[2] = new SqlParameter("@Importe", SqlDbType.Decimal);
                            param2[2].Value = oRecibo.PagoInformado.importe.Valor;
                            param2[3] = new SqlParameter("@transaccion", SqlDbType.VarChar);
                            param2[3].Value = oRecibo.PagoInformado.transaccion;
                            param2[4] = new SqlParameter("@bancoIdDestino", SqlDbType.Int);
                            param2[4].Value = oRecibo.PagoInformado.datosTransferencia.bancoIdDestino;
                            param2[5] = new SqlParameter("@observaciones", SqlDbType.VarChar);
                            param2[5].Value = oRecibo.PagoInformado.observaciones;
                            datosSQL.ConGenerico = false;
                            datosSQL.Parametros = param2;
                            datosSQL.Stored = "COIG_FEBUY_putReciboPagoTransf";
                            // idRecibo = EbuySqlFact.ExecuteSP(oRecibo, oRecibo.Docid_imputados, "COIG_FEBUY_putRecibo", "COIG_FEBUY_putReciboPagoTransf", param, param2, false);

                            break;
                    }
                    if (tipoPago != 0)
                        ebSQL.ExecuteNonQuery(datosSQL);

                }
                else
                {

                    idRecibo = Convert.ToInt32(oRecibo.Rec_Docid);
                }
                List<docImputados> ldi = oRecibo.Docid_imputados;

                if (ldi.Count == 0)
                    throw new Exception();
                SqlParameter[] param3;
                int cont = 1;

                foreach (docImputados dci in ldi)
                {

                    param3 = new SqlParameter[7];
                    param3[0] = new SqlParameter("@Factura_DocId", SqlDbType.VarChar);
                    param3[0].Value = dci.idFactura;
                    param3[1] = new SqlParameter("@Rec_DocId", SqlDbType.VarChar);
                    param3[1].Value = idRecibo;
                    param3[2] = new SqlParameter("@Importe_Parcial", SqlDbType.Decimal);
                    param3[2].Value = dci.importePagado;
                    param3[3] = new SqlParameter("@estadoF", SqlDbType.Int);
                    if (dci.importePagado >= dci.importeF)
                    {
                        if (esebuy)
                            param3[3].Value = 4;
                        else
                         param3[3].Value = 3;
                    }
                    else
                        param3[3].Value = 0;
                    param3[4] = new SqlParameter("@provID", SqlDbType.VarChar);
                    param3[4].Value = oRecibo.provId;
                    param3[5] = new SqlParameter("@Retenciones", SqlDbType.Decimal);
                    param3[5].Value = dci.importeRetenciones;
                    param3[6] = new SqlParameter("@ContinuarBuscando", SqlDbType.Int);
                    if (cont == ldi.Count)
                        param3[6].Value = 1;
                    else
                        param3[6].Value = 0;

                        datosSQL.ConGenerico = false;
                    datosSQL.Parametros = param3;
                    datosSQL.Stored = "COIG_FEBUY_putAsocFactRecibo";

                    ebSQL.ExecuteNonQuery(datosSQL);
                    cont++;
                }

                ebSQL.EndTran();

            }
            catch (Exception ex)
            {

                throw new Exception(ex.Message);
            }

            //int idRecibo=0;

            //return idRecibo;
            return idRecibo;
        }