//public ClienteFacturacionModel(ClienteFacturacionModel obj) : base(obj) { }


        public static new ClienteFacturacionModel Create(ClienteFacturacion obj)
        {
            if (obj == null)
            {
                return(null);
            }
            return(new ClienteFacturacionModel(obj) as ClienteFacturacionModel);
        }
Example #2
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            this.Guardado = false;

            if (!Validaciones())
                return;

            var res = Util.MensajePregunta("¿Está seguro de que la información es correcta?", GlobalClass.NombreApp);
            if (res == DialogResult.No)
                return;

            this.Cursor = Cursors.WaitCursor;

            int iClienteID;
            try
            {
                SplashScreen.Show(new Splash());
                this.btnGuardar.Enabled = false;
                if (EsNuevo)
                {
                    var cliente = new Cliente()
                    {
                        Nombre = this.txtNombreCliente.Text,
                        Calle = this.txtCalle.Text,
                        NumeroExterior = this.txtNumeroExt.Text,
                        NumeroInterior = this.txtNumeroInt.Text,
                        Colonia = this.txtColonia.Text,
                        EstadoID = Util.Entero(this.cboEstado.SelectedValue),
                        MunicipioID = Util.Entero(this.cboMunicipio.SelectedValue),
                        CiudadID = Util.Entero(this.cboCiudad.SelectedValue),
                        CodigoPostal = this.txtCp.Text,
                        Alias = this.txtAlias.Text,
                        Telefono = this.txtTelOficina.Text,
                        Particular = this.txtTelParticular.Text,
                        Celular = this.txtTelCelular.Text,
                        Nextel = this.txtNextel.Text,

                        TieneCredito = this.chkTieneCredito.Checked,
                        Tolerancia = this.chkTolerancia.Checked,
                        DiasDeCredito = Util.Entero(this.txtPlazo.Text),
                        LimiteCredito = Util.Decimal(this.txtLimite.Text),
                        CobranzaContacto = this.txtCreditoContacto.Text,
                        CobranzaObservacion = this.txtCreditoObservacion.Text,

                        MenorQue2000Efectivo = this.chkMenor2000Efectivo.Checked,
                        TipoFormaPagoID = Util.Entero(this.cboMetodoPago.SelectedValue) > 0 ? Util.Entero(this.cboMetodoPago.SelectedValue) : default(int?),
                        BancoID = Util.Entero(this.cboBanco.SelectedValue) > 0 ? Util.Entero(this.cboBanco.SelectedValue) : default(int?),
                        CuentaBancaria = this.txtCuenta.Text,

                        ListaDePrecios = Util.Entero(this.nudListaPrecio.Value),
                        TipoClienteID = Util.Entero(this.cboTipoCliente.SelectedValue) > 0 ? Util.Entero(this.cboTipoCliente.SelectedValue) : default(int?),
                        ClienteComisionistaID = Util.Entero(this.cboClienteComisionista.SelectedValue) > 0 ? Util.Entero(this.cboClienteComisionista.SelectedValue) : default(int?),
                        EsClienteComisionista = this.chkClienteComisionista.Checked,
                        EsTallerElectrico = this.chkTallerElectrico.Checked,
                        EsTallerMecanico = this.chkTallerMecanico.Checked,
                        EsTallerDiesel = this.chkTallerDiesel.Checked,

                        Vip = this.chkVip.Checked,
                        CobroPorEnvio = this.chkCobroPorEnvio.Checked,
                        ImporteParaCobroPorEnvio = Util.Decimal(this.txtImporteParaCobroPorEnvio.Text),
                        ImporteCobroPorEnvio = Util.Decimal(this.txtImporteCobroPorEnvio.Text),

                        DiaDeCobro = this.cbDiaCobro.SelectedIndex+1,
                        //HoraDeCobro = TimeSpan.Parse(this.cbCobrarCredito.Text);
                        //var hora= DateTime.Parse(this.dtpHoraCobro.Value);
                       // HoraDeCobro = TimeSpan.Parse(this.dtpHoraCobro.Value.TimeOfDay.ToString())

                       //Factura
                       SiempreFactura = this.chkSiempreFactura.Checked,
                       SiempreTicket = this.chkSiempreTicket.Checked,
                       //Vale
                       SiempreVale = this.chkSiempreVale.Checked,
                       //Ticket precio 1
                       TicketPrecio1 = this.chkTicket1.Checked
                    };
                    Datos.Guardar<Cliente>(cliente);
                    iClienteID = cliente.ClienteID;

                    if (this.txtRfc.Text != "")
                    {
                        var clf = Datos.GetEntity<ClienteFacturacion>(c => c.ClienteID == cliente.ClienteID);
                        if (clf == null)
                        {
                            var clientef = new ClienteFacturacion()
                            {
                                ClienteID = cliente.ClienteID,
                                Rfc = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtRfc.Text),
                                RazonSocial = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNombreCliente.Text),
                                Calle = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCalle.Text),
                                NumeroExterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroExt.Text),
                                NumeroInterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroInt.Text),
                                Colonia = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtColonia.Text),
                                CodigoPostal = this.txtCp.Text != "" ? UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCp.Text) : "00000",
                                Pais = "MEXICO",
                                EstadoID = Util.Entero(this.cboEstado.SelectedValue),
                                MunicipioID = Util.Entero(this.cboMunicipio.SelectedValue),
                                CiudadID = Util.Entero(this.cboCiudad.SelectedValue)
                            };
                            Datos.Guardar<ClienteFacturacion>(clientef);
                        }
                        else
                        {
                            Datos.Guardar<ClienteFacturacion>(clf);
                        }
                    }
                    if (this.ModificaCredito)
                    {
                        if (Util.Decimal(this.txtPlazo.Text) > 0
                        || Util.Decimal(this.txtLimite.Text) > 0
                        || this.chkTieneCredito.Checked || this.chkTolerancia.Checked)
                        {
                            if (cliente.ClienteID > 0)
                            {
                                var r = this.chkTieneCredito.Checked == true ? "SI" : "NO";
                                var t = this.chkTolerancia.Checked == true ? "SI" : "NO";
                                var credito = new ClienteCredito()
                                {
                                    ClienteID = cliente.ClienteID,
                                    Accion = string.Format("Plazo:{0}, Limite:{1}, Restringir:{2}, Tolerancia:{3}", txtPlazo.Text, txtLimite.Text, r, t),
                                    Comentario = this.txtComentario.Text
                                };
                                Datos.Guardar<ClienteCredito>(credito);
                            }
                        }
                    }

                    catalogosClientes.Instance.CustomInvoke<catalogosClientes>(m => m.seleccionarCliente(cliente.ClienteID));
                }
                else
                {
                    //Modificar Cliente
                    Cliente.Nombre = this.txtNombreCliente.Text;
                    Cliente.Calle = this.txtCalle.Text;
                    Cliente.NumeroExterior = this.txtNumeroExt.Text;
                    Cliente.NumeroInterior = this.txtNumeroInt.Text;
                    Cliente.Colonia = this.txtColonia.Text;
                    Cliente.EstadoID = Util.Entero(this.cboEstado.SelectedValue);
                    Cliente.MunicipioID = Util.Entero(this.cboMunicipio.SelectedValue);
                    Cliente.CiudadID = Util.Entero(this.cboCiudad.SelectedValue);
                    Cliente.CodigoPostal = this.txtCp.Text;
                    Cliente.Alias = this.txtAlias.Text;
                    Cliente.Telefono = this.txtTelOficina.Text;
                    Cliente.Particular = this.txtTelParticular.Text;
                    Cliente.Celular = this.txtTelCelular.Text;
                    Cliente.Nextel = this.txtNextel.Text;

                    Cliente.TieneCredito = this.chkTieneCredito.Checked;
                    Cliente.Tolerancia = this.chkTolerancia.Checked;
                    Cliente.DiasDeCredito = Util.Entero(this.txtPlazo.Text);
                    Cliente.LimiteCredito = Util.Decimal(this.txtLimite.Text);
                    Cliente.CobranzaContacto = this.txtCreditoContacto.Text;
                    Cliente.CobranzaObservacion = this.txtCreditoObservacion.Text;

                    Cliente.MenorQue2000Efectivo = this.chkMenor2000Efectivo.Checked;
                    Cliente.TipoFormaPagoID = Util.Entero(this.cboMetodoPago.SelectedValue);
                    Cliente.BancoID = Util.Entero(this.cboBanco.SelectedValue);
                    Cliente.CuentaBancaria = this.txtCuenta.Text;

                    Cliente.ListaDePrecios = Util.Entero(this.nudListaPrecio.Value);
                    Cliente.TipoClienteID = Util.Entero(this.cboTipoCliente.SelectedValue) > 0 ? Util.Entero(this.cboTipoCliente.SelectedValue) : default(int?);
                    Cliente.ClienteComisionistaID = Util.Entero(this.cboClienteComisionista.SelectedValue) > 0 ? Util.Entero(this.cboClienteComisionista.SelectedValue) : default(int?);
                    Cliente.EsClienteComisionista = this.chkClienteComisionista.Checked;
                    Cliente.EsTallerElectrico = this.chkTallerElectrico.Checked;
                    Cliente.EsTallerMecanico = this.chkTallerMecanico.Checked;
                    Cliente.EsTallerDiesel = this.chkTallerDiesel.Checked;

                    Cliente.Vip = this.chkVip.Checked;
                    Cliente.CobroPorEnvio = this.chkCobroPorEnvio.Checked;
                    Cliente.ImporteParaCobroPorEnvio = Util.Decimal(this.txtImporteParaCobroPorEnvio.Text);
                    Cliente.ImporteCobroPorEnvio = Util.Decimal(this.txtImporteCobroPorEnvio.Text);

                    //Guardar dia y hora de preferencia de cobro
                    Cliente.DiaDeCobro = this.cbDiaCobro.SelectedIndex+1;
                    Cliente.HoraDeCobro = TimeSpan.Parse(this.dtpHoraCobro.Value.TimeOfDay.ToString());
                    Cliente.SiempreFactura = this.chkSiempreFactura.Checked;
                    Cliente.SiempreTicket = this.chkSiempreTicket.Checked;
                    Cliente.SiempreVale = this.chkSiempreVale.Checked;
                    Cliente.TicketPrecio1 = this.chkTicket1.Checked;
                    Datos.Guardar<Cliente>(Cliente);
                    iClienteID = Cliente.ClienteID;

                    //Modificar Cliente Facturacion
                    if (ClienteFacturacion != null)
                    {
                        ClienteFacturacion.Rfc = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtRfc.Text);
                        ClienteFacturacion.RazonSocial = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNombreCliente.Text);
                        ClienteFacturacion.Calle = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCalle.Text);
                        ClienteFacturacion.NumeroExterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroExt.Text);
                        ClienteFacturacion.NumeroInterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroInt.Text);
                        ClienteFacturacion.Colonia = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtColonia.Text);
                        ClienteFacturacion.CodigoPostal = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCp.Text);
                        ClienteFacturacion.Pais = "MEXICO";
                        ClienteFacturacion.EstadoID = Util.Entero(this.cboEstado.SelectedValue);
                        ClienteFacturacion.MunicipioID = Util.Entero(this.cboMunicipio.SelectedValue);
                        ClienteFacturacion.CiudadID = Util.Entero(this.cboCiudad.SelectedValue);
                        Datos.Guardar<ClienteFacturacion>(ClienteFacturacion);
                    }
                    else
                    {
                        if (this.txtRfc.Text != "")
                        {
                            var clientef = new ClienteFacturacion()
                            {
                                ClienteID = Cliente.ClienteID,
                                Rfc = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtRfc.Text),
                                RazonSocial = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNombreCliente.Text),
                                Calle = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCalle.Text),
                                NumeroExterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroExt.Text),
                                NumeroInterior = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtNumeroInt.Text),
                                Colonia = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtColonia.Text),
                                CodigoPostal = UtilLocal.LimpiarCadenaDeEspaciosBlancos(this.txtCp.Text),
                                Pais = "MEXICO",
                                EstadoID = Util.Entero(this.cboEstado.SelectedValue),
                                MunicipioID = Util.Entero(this.cboMunicipio.SelectedValue),
                                CiudadID = Util.Entero(this.cboCiudad.SelectedValue)
                            };
                            Datos.Guardar<ClienteFacturacion>(clientef);
                        }
                    }

                    if (modificoCredito && this.ModificaCredito)
                    {
                        var r = this.chkTieneCredito.Checked == true ? "SI" : "NO";
                        var t = this.chkTolerancia.Checked == true ? "SI" : "NO";
                        var credito = new ClienteCredito()
                        {
                            ClienteID = Cliente.ClienteID,
                            Accion = string.Format("Plazo:{0}, Limite:{1}, Restringir:{2}, Tolerancia:{3}", txtPlazo.Text, txtLimite.Text, r, t),
                            Comentario = this.txtComentario.Text
                        };
                        Datos.Guardar<ClienteCredito>(credito);
                        txtComentario.Text = "";
                        cargarClienteCredito(Cliente.ClienteID);
                    }
                }

                // Se guardan los datos de los vehículos
                ClienteFlotilla oReg;
                foreach (DataGridViewRow oFila in this.dgvVehiculos.Rows)
                {
                    if (oFila.IsNewRow) continue;

                    int iId = this.dgvVehiculos.ObtenerId(oFila);
                    int iCambio = this.dgvVehiculos.ObtenerIdCambio(oFila);
                    switch (iCambio)
                    {
                        case Cat.TiposDeAfectacion.Agregar:
                        case Cat.TiposDeAfectacion.Modificar:
                            if (iCambio == Cat.TiposDeAfectacion.Agregar)
                                oReg = new ClienteFlotilla() { ClienteID = iClienteID };
                            else
                                oReg = Datos.GetEntity<ClienteFlotilla>(c => c.ClienteFlotillaID == iId && c.Estatus);

                            oReg.NumeroEconomico = Util.Cadena(oFila.Cells["NumeroEconomico"].Value);
                            oReg.Anio = (Util.Entero(oFila.Cells["Anio"].Value) > 0 ? (int?)Util.Entero(oFila.Cells["Anio"].Value) : null);
                            oReg.MotorID = (Util.Entero(oFila.Cells["MotorID"].Value) > 0
                                ? (int?)Util.Entero(oFila.Cells["MotorID"].Value) : null);
                            oReg.VehiculoTipoID = (Util.Entero(oFila.Cells["TipoID"].Value) > 0
                                ? (int?)Util.Entero(oFila.Cells["TipoID"].Value) : null);
                            oReg.Vin = Util.Cadena(oFila.Cells["Vin"].Value);
                            oReg.Color = Util.Cadena(oFila.Cells["Color"].Value);
                            oReg.Placa = Util.Cadena(oFila.Cells["Placa"].Value);
                            oReg.Kilometraje = Util.Entero(oFila.Cells["Kilometraje"].Value);

                            Datos.Guardar<ClienteFlotilla>(oReg);
                            break;
                        case Cat.TiposDeAfectacion.Borrar:
                            oReg = Datos.GetEntity<ClienteFlotilla>(c => c.ClienteFlotillaID == iId && c.Estatus);
                            Datos.Eliminar<ClienteFlotilla>(oReg, true);
                            break;
                    }
                }
                this.CargarClienteVehiculos(iClienteID);

                new Notificacion("Cliente Guardado exitosamente", 2 * 1000).Mostrar(Principal.Instance);
                this.modificoCredito = false;
                this.Cursor = Cursors.Default;
                this.Guardado = true;
                this.clienteId = iClienteID;

                this.txtComentario.Clear();

                //refrescar calendario
                this.CargarEventosCalendario();

                SplashScreen.Close();
                this.btnGuardar.Enabled = true;

            }
            catch (Exception ex)
            {
                SplashScreen.Close();
                this.btnGuardar.Enabled = true;
                Util.MensajeError(ex.Message, GlobalClass.NombreApp);
                this.Cursor = Cursors.Default;
            }
        }
 protected ClienteFacturacionModel(ClienteFacturacion obj) : base(obj)
 {
 }
Example #4
0
        public void CargarCliente(int clienteId)
        {
            this.LimpiarFormulario();
            //Si viene de Ventas Ocultar  los contenedores de ""abajo"" excepto Personal y vehículos
            if (VieneDeVentas)
            {
                this.tabClientes.TabPages.Remove(this.tabClientesCalendario);
                this.tabClientes.TabPages.Remove(this.tabControl);
                this.gpoCredito.Visible = false;
                this.gpoMetodoPago.Visible = false;
                this.gpoCaracteristicas.Visible = false;
                this.btnCobranza.Visible = false;
            }
            try
            {
                if (clienteId <= 0)
                {
                    EsNuevo = true;
                    // this.LimpiarFormulario()
                    this.modificoCredito = false;
                    this.gpoDatosUsuarios.Enabled = false;
                    return;
                }

                var cliente = Datos.GetEntity<ClientesView>(c => c.ClienteID.Equals(clienteId));
                if (cliente != null)
                {
                    EsNuevo = false;
                    this.gpoDatosUsuarios.Enabled = true;
                    Cliente = Datos.GetEntity<Cliente>(c => c.ClienteID == cliente.ClienteID);
                    this.ClienteID = clienteId;
                    ClienteFacturacion = Datos.GetEntity<ClienteFacturacion>(c => c.ClienteID == cliente.ClienteID);

                    if (this.cboEstado.DataSource == null)
                    {
                        this.bancos = new BindingSource();
                        var bancos = Datos.GetListOf<Banco>().ToList();
                        bancos.Insert(0, new Banco() { BancoID = 0, NombreBanco = "" });
                        this.bancos.DataSource = bancos;

                        var listaEstados = (List<Estado>)estados.DataSource;
                        this.cboEstado.DisplayMember = "NombreEstado";
                        this.cboEstado.DataSource = listaEstados;
                        this.cboEstado.ValueMember = "EstadoID";
                    }

                    this.txtNombreCliente.Text = cliente.Nombre;
                    this.txtRfc.Text = cliente.Rfc;
                    this.txtCalle.Text = cliente.Calle;
                    this.txtNumeroExt.Text = cliente.NumeroExterior;
                    this.txtNumeroInt.Text = cliente.NumeroInterior;
                    this.txtColonia.Text = cliente.Colonia;

                    this.txtPais.Text = "MEXICO";
                    this.txtCp.Text = cliente.CodigoPostal;
                    this.txtFechaIngreso.Text = Util.Cadena(cliente.FechaRegistro.ToShortDateString());
                    this.txtAlias.Text = cliente.Alias;
                    this.txtTelOficina.Text = cliente.Telefono;
                    this.txtTelParticular.Text = cliente.Particular;
                    this.txtTelCelular.Text = cliente.Celular;
                    this.txtNextel.Text = cliente.Nextel;

                    this.txtPlazo.Text = Util.Cadena(cliente.DiasDeCredito);
                    this.txtLimite.Text = UtilLocal.DecimalToCadenaMoneda(cliente.LimiteCredito);
                    this.chkTieneCredito.Checked = Util.Logico(cliente.TieneCredito);
                    this.chkTolerancia.Checked = Util.Logico(cliente.Tolerancia);
                    this.txtCreditoContacto.Text = cliente.CobranzaContacto;
                    this.txtCreditoObservacion.Text = cliente.CobranzaObservacion;

                    this.chkMenor2000Efectivo.Checked = cliente.MenorQue2000Efectivo.Valor();
                    if (cliente.TipoFormaPagoID != null)
                        this.cboMetodoPago.SelectedValue = cliente.TipoFormaPagoID;
                    if (cliente.BancoID != null)
                        this.cboBanco.SelectedValue = cliente.BancoID;
                    this.txtCuenta.Text = cliente.CuentaBancaria;
                    this.nudListaPrecio.Value = cliente.ListaDePrecios < 1 ? 1 : cliente.ListaDePrecios;
                    if (cliente.TipoClienteID != null)
                        this.cboTipoCliente.SelectedValue = cliente.TipoClienteID;
                    this.chkClienteComisionista.Checked = Util.Logico(cliente.EsClienteComisionista);
                    this.chkTallerMecanico.Checked = Util.Logico(cliente.EsTallerMecanico);
                    this.chkTallerElectrico.Checked = Util.Logico(cliente.EsTallerElectrico);
                    this.chkTallerDiesel.Checked = Util.Logico(cliente.EsTallerDiesel);

                    this.chkVip.Checked = Util.Logico(cliente.Vip);
                    this.chkCobroPorEnvio.Checked = Cliente.CobroPorEnvio.Valor();
                    this.txtImporteCobroPorEnvio.Enabled = this.chkCobroPorEnvio.Checked;
                    this.txtImporteParaCobroPorEnvio.Enabled = this.chkCobroPorEnvio.Checked;
                    if (Cliente.CobroPorEnvio.Valor())
                    {
                        this.txtImporteParaCobroPorEnvio.Text = Cliente.ImporteParaCobroPorEnvio.Valor().ToString();
                        this.txtImporteCobroPorEnvio.Text = Cliente.ImporteCobroPorEnvio.Valor().ToString();
                    }

                    if (cliente.ClienteComisionistaID != null)
                        this.cboClienteComisionista.SelectedValue = cliente.ClienteComisionistaID;
                    else
                        this.cboClienteComisionista.Text = "";

                    //this.txtPromedioPagoTotal.Text = Util.ConvertirCadena(cliente.PromedioPagoTotal);
                    //this.txtPromedioPago3meses.Text = Util.ConvertirCadena(cliente.PromedioPagoTresMeses);

                    //this.txtDeudaActual.Text = Util.DecimalToCadenaMoneda(cliente.DeudaActual);
                    //this.txtVencido.Text = Util.DecimalToCadenaMoneda(cliente.DeudaVencido);

                    //this.txtAcumulado.Text = Util.DecimalToCadenaMoneda(cliente.Acumulado);
                    //this.txtAcumuladoH.Text = Util.DecimalToCadenaMoneda(cliente.AcumuladoH);
                    // Otros acumulados
                    var oVentas = Datos.GetListOf<VentasView>(c => c.ClienteID == clienteId && c.VentaEstatusID == Cat.VentasEstatus.Completada);
                    this.txtAcumulado.Text = (cliente.AcumuladoH.Valor() + (oVentas.Count > 0 ? oVentas.Sum(c => c.Pagado) : 0)).ToString(GlobalClass.FormatoMoneda);

                    this.cboEstado.SelectedValue = cliente.EstadoID;
                    this.cboMunicipio.SelectedValue = cliente.MunicipioID;
                    this.cboCiudad.SelectedValue = cliente.CiudadID;

                    this.cargarClientePersonal(clienteId);
                    this.cargarClienteCredito(clienteId);

                    // Se cargan los vehículos del cliente
                    this.CargarClienteVehiculos(clienteId);

                    // Si es ventas mostrador, se bloquea
                    this.gpoDatosUsuarios.Enabled = (clienteId != Cat.Clientes.Mostrador);

                    // Para las cargas de la pestaña de productos vendidos
                    this.CambiarClienteProductosVendidos(clienteId);

                    // Se carga la tab Tablero de Control
                    if (this.tabClientes.SelectedTab == this.tabControl)
                        this.CargarTableroControl(clienteId);
                }
            }
            catch (Exception ex)
            {
                Util.MensajeError(ex.Message, GlobalClass.NombreApp);
            }
        }