Exemplo n.º 1
0
        private void AddModif(Persona local, char Tipo)
        {
            ClienteNegocio   negocioCli  = new ClienteNegocio();
            ProveedorNegocio negocioProv = new ProveedorNegocio();
            LocalidadNegocio negocioLoc  = new LocalidadNegocio();
            DomicilioNegocio negocioDoc  = new DomicilioNegocio();
            TelefonoNegocio  negocioTel  = new TelefonoNegocio();
            MailNegocio      negocioMail = new MailNegocio();

            if (btnAgregar.Text == "Agregar")
            {
                if (llenarLocal(local))
                {
                    //Domicilio
                    int idLocalidad = negocioLoc.buscarLocalidad(local.Domicilio.Localidad);
                    if (txtCalle.Text.Trim() != "" && txtAltura.Text.Trim() != "")
                    {
                        if (idLocalidad == -1 && txtLocalidad.Text != "")
                        {
                            local.Domicilio.Localidad.ID = negocioLoc.agregarLocalidad(local.Domicilio.Localidad);
                        }
                        else
                        {
                            local.Domicilio.Localidad.ID = idLocalidad;
                        }
                        local.Domicilio.ID = negocioDoc.agregarDomicilio(local.Domicilio);
                    }

                    if (Tipo == 'P')
                    {
                        negocioProv.agregarProveedor((Proveedor)local);
                    }
                    else
                    {
                        negocioCli.agregarCliente((Cliente)local);
                    }

                    //Mail
                    for (int i = 0; i < local.Mails.Count; i++)
                    {
                        int idMail = negocioMail.agregarMail(local.Mails[i]);
                        if (Tipo == 'P')
                        {
                            negocioProv.agregarMailXProveedor((Proveedor)local, idMail);
                        }
                        else
                        {
                            negocioCli.agregarMailXCliente((Cliente)local, idMail);
                        }
                    }

                    //Telefono
                    for (int i = 0; i < local.Telefonos.Count; i++)
                    {
                        int idMail = negocioTel.agregarTelefono(local.Telefonos[i]);
                        if (Tipo == 'P')
                        {
                            negocioProv.agregarTelefonoXProveedor((Proveedor)local, idMail);
                        }
                        else
                        {
                            negocioCli.agregarTelefonoXCliente((Cliente)local, idMail);
                        }
                    }
                    Close();
                }
            }
            else
            {
                if (llenarLocal(local))
                {
                    if (txtCalle.Text.Trim() != "" && txtAltura.Text.Trim() != "")
                    {
                        int idLocalidad = negocioLoc.buscarLocalidad(local.Domicilio.Localidad);
                        if (local.Domicilio.ID < 1)
                        {
                            if (local.Domicilio.Localidad.ID == 0)
                            {
                                if (idLocalidad == -1 && txtLocalidad.Text != "")
                                {
                                    local.Domicilio.Localidad.ID = negocioLoc.agregarLocalidad(local.Domicilio.Localidad);
                                }
                                else
                                {
                                    local.Domicilio.Localidad.ID = idLocalidad;
                                }
                            }
                            local.Domicilio.ID = negocioDoc.agregarDomicilio(local.Domicilio);
                        }
                        else
                        {
                            if (local.Domicilio.Localidad.ID == 0)
                            {
                                if (idLocalidad == -1 && txtLocalidad.Text != "")
                                {
                                    local.Domicilio.Localidad.ID = negocioLoc.agregarLocalidad(local.Domicilio.Localidad);
                                }
                                else
                                {
                                    local.Domicilio.Localidad.ID = idLocalidad;
                                }
                            }
                            negocioDoc.modificarDomicilio(local.Domicilio);
                        }
                    }
                    else if (local.Domicilio.Calle == "" || local.Domicilio.Altura == 0)
                    {
                        negocioDoc.eliminarDomicilio(local.Domicilio);
                    }

                    //Mail
                    if (Tipo == 'P')
                    {
                        negocioProv.eliminarMailXProveedor((Proveedor)local);
                    }
                    else
                    {
                        negocioCli.eliminarMailXCliente((Cliente)local);
                    }

                    for (int i = 0; i < local.Mails.Count; i++)
                    {
                        int idMail = negocioMail.agregarMail(local.Mails[i]);
                        if (Tipo == 'P')
                        {
                            negocioProv.agregarMailXProveedor((Proveedor)local, idMail);
                        }
                        else
                        {
                            negocioCli.agregarMailXCliente((Cliente)local, idMail);
                        }
                    }

                    //Telefono
                    if (Tipo == 'P')
                    {
                        negocioProv.eliminarTelefonoXProveedor((Proveedor)local);
                    }
                    else
                    {
                        negocioCli.eliminarTelefonoXCliente((Cliente)local);
                    }

                    for (int i = 0; i < local.Telefonos.Count; i++)
                    {
                        int idMail = negocioTel.agregarTelefono(local.Telefonos[i]);
                        if (Tipo == 'P')
                        {
                            negocioProv.agregarTelefonoXProveedor((Proveedor)local, idMail);
                        }
                        else
                        {
                            negocioCli.agregarTelefonoXCliente((Cliente)local, idMail);
                        }
                    }



                    if (Tipo == 'P')
                    {
                        negocioProv.modificarProveedor((Proveedor)local);
                    }
                    else
                    {
                        negocioCli.modificarCliente((Cliente)local);
                    }
                    Close();
                }
            }
        }