public double CostoDadoMaterial(string material)
 {
     DataSetFacturacion.ficha_costosDataTable costos = ds.ficha_costos;
     foreach (var costo in costos)
     {
         if (costo.material.Equals(material))
         {
             return(costo.precio_unitario);
         }
     }
     return(0);
 }
 public int ServicioDadoMaterial(string material)
 {
     DataSetFacturacion.ficha_costosDataTable costos = ds.ficha_costos;
     foreach (var costo in costos)
     {
         if (costo.material.Equals(material))
         {
             return(costo.id);
         }
     }
     return(0);
 }
        public Modelo.Servicio ServicioDadoId(int id)
        {
            try
            {
                DataSetFacturacion.ficha_costosDataTable cost = FichaCostosTB.GetCostosById(id);
                Servicio servicio = new Servicio();
                servicio.Id              = ((DataSetFacturacion.ficha_costosRow)cost[0]).id;
                servicio.Material        = ((DataSetFacturacion.ficha_costosRow)cost[0]).material;
                servicio.Precio_unitario = ((DataSetFacturacion.ficha_costosRow)cost[0]).precio_unitario;

                return(servicio);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <Servicio> ServiciosDadoIdPedido(int p)
        {
            List <Servicio> servicio = new List <Servicio>();

            DataSetFacturacion.pedidos_costosDataTable servicios = CostosTB.ServiciosdadoIdPedido(p);
            foreach (var item in servicios)
            {
                DataSetFacturacion.ficha_costosDataTable costos = FichaCostosTB.GetCostosById(((DataSetFacturacion.pedidos_costosRow)item).idcostos);
                foreach (var item2 in costos)
                {
                    Servicio a = new Servicio();
                    a.Id              = ((DataSetFacturacion.ficha_costosRow)item2).id;
                    a.Material        = ((DataSetFacturacion.ficha_costosRow)item2).material;
                    a.Precio_unitario = ((DataSetFacturacion.ficha_costosRow)item2).precio_unitario;
                    servicio.Add(a);
                }
            }
            return(servicio);
        }
        public bool AdicionarCliente(Cliente clientenew, Pedido pedidoNew)
        {
            try
            {
                pedidoNew.Estado = "pendiente";
                DataSetFacturacion.clienteDataTable clienteId = ClienteTB.GetIdByEmpresa(clientenew.Empresa);
                int idtemp = ObtenerIdCliente(clienteId);
                if (idtemp == 0)
                {
                    this.ClienteTB.Insert(clientenew.Cuenta_Bancaria, clientenew.Provincia, clientenew.Nombre_representante, clientenew.Carnet_representante, clientenew.Direccion, clientenew.Telefono, clientenew.Empresa);
                    this.ClienteTB.Update(this.ds.cliente);
                    this.ClienteTB.Fill(this.ds.cliente);
                    DataSetFacturacion.clienteDataTable cliente = ClienteTB.GetIdByEmpresa(clientenew.Empresa);
                    idtemp = ObtenerIdCliente(cliente);
                }
                else
                {
                    if (idtemp > 0)
                    {
                        if (((DataSetFacturacion.clienteRow)clienteId.Rows[0]).cuenta_bancaria != (clientenew.Cuenta_Bancaria) ||
                            ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).direccion != (clientenew.Direccion) ||
                            ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).telefono != (clientenew.Telefono) ||
                            ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).empresa != (clientenew.Empresa) ||
                            ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).nombre_representante != (clientenew.Nombre_representante) ||
                            ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).provincia != (clientenew.Provincia))
                        {
                            ClienteTB.Update(clientenew.Cuenta_Bancaria, clientenew.Provincia, clientenew.Nombre_representante, clientenew.Carnet_representante,
                                             clientenew.Direccion, clientenew.Telefono, clientenew.Empresa, idtemp,
                                             ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).cuenta_bancaria, ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).provincia,
                                             ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).nombre_representante, ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).carnet_representante,
                                             ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).direccion, ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).telefono,
                                             ((DataSetFacturacion.clienteRow)clienteId.Rows[0]).empresa);
                        }
                    }
                }

                if (pedidoNew.Tipo_impresion == null)
                {
                    pedidoNew.Tipo_impresion = "";
                }
                if (pedidoNew.Color_impresion == null)
                {
                    pedidoNew.Color_impresion = "";
                }
                if (pedidoNew.Observaciones == null)
                {
                    pedidoNew.Observaciones = "";
                }

                this.PedidoTB.Insert(pedidoNew.Fecha_entrega, pedidoNew.Fecha_expedicion, idtemp, pedidoNew.Forma_pago,
                                     pedidoNew.Descuentos, pedidoNew.Tipo_documento, pedidoNew.Tipo_impresion,
                                     pedidoNew.Color_impresion, pedidoNew.Estado, pedidoNew.Coste_total,
                                     pedidoNew.Cantidad_paginas, pedidoNew.Importe_total, pedidoNew.Pago_adelantado,
                                     pedidoNew.Observaciones, pedidoNew.Cantidad_Ejemplares, pedidoNew.ManoObraFotocopia,
                                     pedidoNew.ManoObraImpresion, pedidoNew.ManoObraPresillado, pedidoNew.Paginas_por_Cara,
                                     pedidoNew.ManoObraEncuadernado, pedidoNew.ValorAgregado, pedidoNew.ManoObraCorte, clientenew.Nombre_representante,
                                     pedidoNew.CosteTonel, pedidoNew.CostePapel, pedidoNew.ManoObraDisenno, pedidoNew.Cantidad_Hojas_Mecanografia
                                     );
                this.PedidoTB.Update(this.ds.pedido);
                this.PedidoTB.Fill(this.ds.pedido);
                int?idpedido = PedidoTB.IdUltimoPedidoInsertado();

                foreach (var item in pedidoNew.Servicios)
                {
                    DataSetFacturacion.ficha_costosDataTable fichacostosId = FichaCostosTB.GetIdByMaterial(item.Material);
                    int idfichacostos = ((DataSetFacturacion.ficha_costosRow)fichacostosId.Rows[0]).id;
                    this.CostosTB.Insert(idpedido, idfichacostos, item.Material);
                    this.CostosTB.Update(this.ds.pedidos_costos);
                    this.CostosTB.Fill(this.ds.pedidos_costos);
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }