コード例 #1
0
ファイル: Editar.cs プロジェクト: LeoIlla777/Gestion777
        public override void ActualizarControl()
        {
            Lbl.Pagos.FormaDePago Pag = this.Elemento as Lbl.Pagos.FormaDePago;

            EntradaNombre.Text   = Pag.Nombre;
            EntradaCaja.Elemento = Pag.Caja;
            if (Pag.Registro["tipo"] != null)
            {
                EntradaTipo.TextKey = Pag.Registro["tipo"].ToString();
            }
            EntradaPagos.TextKey            = Pag.PuedeHacerPagos ? "1" : "0";
            EntradaCobros.TextKey           = Pag.PuedeHacerCobros ? "1" : "0";
            EntradaRetenciones.ValueDecimal = Pag.Retencion;
            EntradaRecargo.ValueDecimal     = Pag.Descuento;
            if (Pag.Concepto_Ingreso != null)
            {
                EntradaConceptoIngreso.ValueInt = Pag.Concepto_Ingreso.Id;
            }
            if (Pag.Concepto_Egreso != null)
            {
                EntradaConceptoEgreso.ValueInt = Pag.Concepto_Egreso.Id;
            }

            base.ActualizarControl();
        }
コード例 #2
0
ファイル: Cobro.cs プロジェクト: solutema/ultralight
        public Cobro(Lfx.Data.Connection dataBase, Lbl.Pagos.TiposFormasDePago tipoFormaDePago)
            : this(dataBase)
        {
            switch (tipoFormaDePago)
            {
            case Lbl.Pagos.TiposFormasDePago.Efectivo:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 1);
                break;

            case Lbl.Pagos.TiposFormasDePago.ChequePropio:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 2);
                break;

            case Lbl.Pagos.TiposFormasDePago.CuentaCorriente:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 3);
                break;

            case Lbl.Pagos.TiposFormasDePago.Tarjeta:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 4);
                break;

            case Lbl.Pagos.TiposFormasDePago.Caja:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 6);
                break;

            case Lbl.Pagos.TiposFormasDePago.ChequeTerceros:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, 8);
                break;

            default:
                FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, (int)tipoFormaDePago);
                break;
            }
        }
コード例 #3
0
ファイル: Valor.cs プロジェクト: solutema/ultralight
 public override void OnLoad()
 {
         if (this.Registro != null) {
                 if (this.GetFieldValue<int>("id_formapago") > 0)
                         this.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, this.GetFieldValue<int>("id_formapago"));
                 else
                         this.FormaDePago = null;
         }
         base.OnLoad();
 }
コード例 #4
0
ファイル: Valor.cs プロジェクト: pabloeferreyra/lazaro
 public override void OnLoad()
 {
     if (this.Registro != null)
     {
         if (this.GetFieldValue <int>("id_formapago") > 0)
         {
             this.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, this.GetFieldValue <int>("id_formapago"));
         }
         else
         {
             this.FormaDePago = null;
         }
     }
     base.OnLoad();
 }
コード例 #5
0
ファイル: Editar.cs プロジェクト: LeoIlla777/Gestion777
        public override void ActualizarElemento()
        {
            Lbl.Pagos.FormaDePago Pag = this.Elemento as Lbl.Pagos.FormaDePago;

            Pag.Nombre           = EntradaNombre.Text;
            Pag.Caja             = EntradaCaja.Elemento as Lbl.Cajas.Caja;
            Pag.Tipo             = (Lbl.Pagos.TiposFormasDePago)(Lfx.Types.Parsing.ParseInt(EntradaTipo.TextKey));
            Pag.PuedeHacerPagos  = Lfx.Types.Parsing.ParseBool(EntradaPagos.TextKey);
            Pag.PuedeHacerCobros = Lfx.Types.Parsing.ParseBool(EntradaCobros.TextKey);
            Pag.Retencion        = EntradaRetenciones.ValueDecimal;
            Pag.Descuento        = EntradaRecargo.ValueDecimal;
            Pag.Concepto_Ingreso = EntradaConceptoIngreso.Elemento as Lbl.Cajas.Concepto;
            Pag.Concepto_Egreso  = EntradaConceptoEgreso.Elemento as Lbl.Cajas.Concepto;

            base.ActualizarElemento();
        }
コード例 #6
0
        public override Lfx.Types.OperationResult ValidarControl()
        {
            Lfx.Types.OperationResult Res = base.ValidarControl();

            if (Res.Success == true)
            {
                if (EntradaRemito.Text.Length > 0)
                {
                    int RemitoNumero, RemitoPv;
                    if (EntradaRemito.Text.IndexOfAny(new char[] { '-' }) >= 0)
                    {
                        // El número de remito tiene guión
                        string[] Partes = EntradaRemito.Text.Split(new char[] { '-' });
                        RemitoNumero = Lfx.Types.Parsing.ParseInt(Partes[0]);
                        RemitoPv     = Lfx.Types.Parsing.ParseInt(Partes[1]);
                    }
                    else
                    {
                        // El número de remito no tiene guión, asumo el mismo PV que la factura
                        RemitoNumero = EntradaRemito.ValueInt;
                        RemitoPv     = EntradaPV.ValueInt;
                    }

                    int RemitoId = this.Connection.FieldInt("SELECT id_comprob FROM comprob WHERE compra=0 AND tipo_fac!='R' AND pv=" + RemitoPv.ToString() + " AND numero=" + RemitoNumero.ToString() + " AND impresa>0 AND anulada=0");
                    if (RemitoId == 0)
                    {
                        Res.Success  = false;
                        Res.Message += "El número de remito no es válido." + Environment.NewLine;
                    }
                }

                Lbl.Pagos.FormaDePago FormaPago = EntradaFormaPago.Elemento as Lbl.Pagos.FormaDePago;
                Lbl.Comprobantes.Tipo Tipo      = new Lbl.Comprobantes.Tipo(this.Connection, EntradaTipo.TextKey);
                if (FormaPago == null && Tipo.EsFacturaOTicket)
                {
                    Res.Success  = false;
                    Res.Message += "Por favor seleccione la forma de pago." + Environment.NewLine;
                }
                if (EntradaCliente.ValueInt == 999 && FormaPago != null && FormaPago.Tipo == Lbl.Pagos.TiposFormasDePago.CuentaCorriente)
                {
                    Res.Success  = false;
                    Res.Message += @"El cliente ""Consumidor final"" no puede tener una cuenta corriente. Deber facturar a nombre de un cliente identificado para poder usar la cuenta corriente." + Environment.NewLine;
                }

                // En Argentina, obligo a ingresar la CUIT
                Lbl.Personas.Persona Cliente = EntradaCliente.Elemento as Lbl.Personas.Persona;
                if (Cliente == null)
                {
                    Res.Success  = false;
                    Res.Message += "Por favor seleccione un cliente." + Environment.NewLine;
                }
                else if (Lbl.Sys.Config.Pais.Id == 1 && Cliente.SituacionTributaria != null && (Cliente.SituacionTributaria.Id == 2 || Cliente.SituacionTributaria.Id == 3))
                {
                    if (Cliente.ClaveTributaria == null || Cliente.ClaveTributaria.EsValido() == false)
                    {
                        Res.Success  = false;
                        Res.Message += "El cliente debe tener una clave tributaria válida." + Environment.NewLine;
                    }
                }
            }
            return(Res);
        }
コード例 #7
0
 public Pago(Lfx.Data.Connection dataBase, Lbl.Pagos.TiposFormasDePago tipoFormaDePago)
     : this(dataBase)
 {
     FormaDePago = new Lbl.Pagos.FormaDePago(dataBase, tipoFormaDePago);
     FormaDePago.Cargar();
 }
コード例 #8
0
 public Pago(Lfx.Data.Connection dataBase, Lbl.Pagos.FormaDePago formaDePago)
     : this(dataBase)
 {
     this.FormaDePago = formaDePago;
 }
コード例 #9
0
ファイル: Cobro.cs プロジェクト: LeoIlla777/Gestion777
 public Cobro(Lfx.Data.IConnection dataBase, Lbl.Pagos.FormaDePago formaDePago)
     : this(dataBase)
 {
     FormaDePago = formaDePago;
 }
コード例 #10
0
ファイル: Inicio.cs プロジェクト: solutema/ultralight
        private void BotonAcreditar_Click(object sender, System.EventArgs e)
        {
            if (Listado.CheckedItems.Count == 0)
            {
                Lui.Forms.MessageBox.Show("Debe marcar uno o más cupones para acreditar.", "Acreditar");
                return;
            }

            using (Lfc.Tarjetas.Cupones.Acreditar FormularioAcreditacion = new Lfc.Tarjetas.Cupones.Acreditar()) {
                Lfx.Types.OperationProgress Progreso = new Lfx.Types.OperationProgress("Acreditando cupones", "Se están marcando los cupones seleccionados como 'Acreditado'.");
                Progreso.Modal = false;

                decimal Total          = 0;
                decimal TotalAcreditar = 0;
                int     iCantidad      = 0;

                System.Text.StringBuilder Cupones = new System.Text.StringBuilder();
                decimal ComisionTarjeta           = 0;
                decimal ComisionPlan   = 0;
                decimal GestionDeCobro = 0;

                Progreso.Max = Listado.Items.Count + 2;
                Progreso.Begin();
                Progreso.ChangeStatus("Analizando");

                Lbl.Pagos.FormaDePago Tarjeta = null;
                foreach (System.Windows.Forms.ListViewItem itm in Listado.Items)
                {
                    if (itm.Checked)
                    {
                        iCantidad++;
                        Lbl.Pagos.Cupon Cupon = new Lbl.Pagos.Cupon(Connection, Lfx.Types.Parsing.ParseInt(itm.Text));
                        Total += Cupon.Importe;
                        if (Cupones.Length > 0)
                        {
                            Cupones.Append("," + Cupon.Numero);
                        }
                        else
                        {
                            Cupones.Append(Cupon.Numero);
                        }

                        if (Cupon.FormaDePago != null)
                        {
                            if (Tarjeta == null)
                            {
                                Tarjeta = Cupon.FormaDePago;
                            }
                            else if (Tarjeta.Id != Cupon.FormaDePago.Id)
                            {
                                //Mezcla de tarjetas
                                Progreso.End();
                                Lui.Forms.MessageBox.Show("No todos los cupones seleccionados pertenecen a la misma forma de pago.", "Error");
                                return;
                            }

                            ComisionTarjeta += Cupon.Importe * (Tarjeta.Retencion / 100);
                            if (Cupon.Plan != null)
                            {
                                ComisionPlan += Cupon.Importe * (Cupon.Plan.Comision / 100);
                            }
                        }
                    }
                    Progreso.ChangeStatus(itm.Index);
                }

                FormularioAcreditacion.IgnorarCambios = true;
                FormularioAcreditacion.EntradaCuponesCantidad.Text = iCantidad.ToString();
                FormularioAcreditacion.EntradaCuponesSubTotal.Text = Lfx.Types.Formatting.FormatCurrency(Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                FormularioAcreditacion.EntradaComisionTarjeta.Text = Lfx.Types.Formatting.FormatCurrency(ComisionTarjeta, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                FormularioAcreditacion.EntradaComisionPlan.Text    = Lfx.Types.Formatting.FormatCurrency(ComisionPlan, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                FormularioAcreditacion.EntradaComisionUsuario.Text = "0";
                FormularioAcreditacion.EntradaTotal.Text           = Lfx.Types.Formatting.FormatCurrency(Total - ComisionTarjeta - ComisionPlan, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                FormularioAcreditacion.IgnorarCambios = false;

                bool Aceptar = false;
                Lfc.Comprobantes.Recibos.EditarCobro FormularioPago = new Lfc.Comprobantes.Recibos.EditarCobro();
                do
                {
                    if (FormularioAcreditacion.ShowDialog() == DialogResult.OK)
                    {
                        TotalAcreditar = Lfx.Types.Parsing.ParseCurrency(FormularioAcreditacion.EntradaTotal.Text);
                        GestionDeCobro = Total - TotalAcreditar;
                        FormularioPago.Cobro.FromCobro(new Lbl.Comprobantes.Cobro(this.Connection, ((Lbl.Pagos.TiposFormasDePago)(Lfx.Types.Parsing.ParseInt(FormularioAcreditacion.EntradaFormaPago.TextKey)))));
                        FormularioPago.Cobro.FormaDePagoEditable = false;
                        FormularioPago.Cobro.Importe             = TotalAcreditar;
                        FormularioPago.Cobro.ImporteEditable     = false;
                        if (Tarjeta != null && Tarjeta.Caja != null)
                        {
                            FormularioPago.Cobro.EntradaCaja.ValueInt = Tarjeta.Caja.Id;
                        }
                        FormularioPago.Cobro.Obs         = "Cupones Nº " + Cupones.ToString();
                        FormularioPago.Cobro.ObsEditable = false;
                        if (FormularioPago.ShowDialog() == DialogResult.OK)
                        {
                            Aceptar = true;
                            break;
                        }
                    }
                    else
                    {
                        Aceptar = false;
                        break;
                    }
                }while (true);
                if (Aceptar)
                {
                    IDbTransaction Trans = Connection.BeginTransaction(IsolationLevel.Serializable);

                    Progreso.ChangeStatus("Asentando el movimiento");
                    Progreso.Max = Listado.Items.Count + 2;
                    Progreso.Begin();

                    // Marcar los cupones como acreditados
                    foreach (System.Windows.Forms.ListViewItem itm in Listado.Items)
                    {
                        if (itm.Checked)
                        {
                            Lbl.Pagos.Cupon Cupon = new Lbl.Pagos.Cupon(this.Connection, Lfx.Types.Parsing.ParseInt(itm.Text));
                            if (Cupon.Estado == 0 || Cupon.Estado == 10)
                            {
                                Cupon.Acreditar();
                            }
                        }
                        Progreso.ChangeStatus(itm.Index);
                    }

                    Progreso.ChangeStatus("Acreditando el importe");
                    // Acreditar el dinero
                    Lbl.Comprobantes.Cobro MiCobro = FormularioPago.Cobro.ToCobro(Connection);
                    switch (FormularioPago.Cobro.FormaDePago.Tipo)
                    {
                    case Lbl.Pagos.TiposFormasDePago.Efectivo:
                        Lbl.Cajas.Caja CajaDiaria = new Lbl.Cajas.Caja(Connection, Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria);
                        CajaDiaria.Movimiento(true,
                                              Lbl.Cajas.Concepto.IngresosPorFacturacion,
                                              "Acreditación de Cupones",
                                              null,
                                              Total,
                                              "Cupones Nº " + Cupones.ToString(),
                                              null,
                                              null,
                                              null);
                        CajaDiaria.Movimiento(true,
                                              new Lbl.Cajas.Concepto(this.Connection, 24010),
                                              "Gestión de Cobro de Cupones",
                                              null,
                                              -GestionDeCobro,
                                              "Cupones Nº " + Cupones.ToString(),
                                              null,
                                              null,
                                              null);
                        break;

                    case Lbl.Pagos.TiposFormasDePago.ChequePropio:
                        Lbl.Bancos.Cheque Cheque = MiCobro.Cheque;
                        Cheque.Concepto      = Lbl.Cajas.Concepto.IngresosPorFacturacion;
                        Cheque.ConceptoTexto = "Acreditación Tarjetas";
                        Cheque.Guardar();
                        break;

                    case Lbl.Pagos.TiposFormasDePago.Caja:
                        MiCobro.CajaDestino.Movimiento(true,
                                                       Lbl.Cajas.Concepto.IngresosPorFacturacion,
                                                       "Acreditación de Cupones",
                                                       null,
                                                       Total,
                                                       "Cupones Nº " + Cupones.ToString(),
                                                       null,
                                                       null,
                                                       null);
                        MiCobro.CajaDestino.Movimiento(true,
                                                       new Lbl.Cajas.Concepto(this.Connection, 24010),
                                                       "Gestión de Cobro de Cupones",
                                                       null,
                                                       -GestionDeCobro,
                                                       "Cupones Nº " + Cupones.ToString(),
                                                       null,
                                                       null,
                                                       null);
                        break;
                    }


                    Trans.Commit();
                    Progreso.End();
                }
            }
            this.RefreshList();
        }