From 5bce128d8a2b735995fc079ddd31a046328dce70 Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 21 Aug 2008 15:19:52 +0000 Subject: [PATCH] Se repasa que en la automatizacion de documentos (una factura a partir de uno o varios presupuesto, por ejemplo) se pregunte siempre si se desea desglosar el contenido del documento origen o no git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@522 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- .../AlbaranesCliente_Group.groupproj | 16 ++- .../AlbaranesProveedor_Group.groupproj | 16 ++- .../Views/uEditorElegirAlbaranesProveedor.dfm | 28 ++++- .../Views/uEditorFacturasCliente.dfm | 2 +- .../Views/uEditorFacturasCliente.pas | 6 - .../FacturasProveedor_controller.res | Bin 4748 -> 384 bytes .../Views/uEditorFacturasProveedor.pas | 12 -- .../Views/PedidosProveedor_view.dproj | 116 +++++++++--------- .../Views/uEditorElegirPedidosProveedor.dfm | 48 ++++---- .../uGenerarFacturasCliAlbCliUtils.pas | 102 +++++++++------ .../uGenerarFacturasProvAlbProvUtils.pas | 90 +++++++++----- .../uGenerarFacturasProvPedUtils.dfm | 6 +- .../uGenerarFacturasProvPedUtils.pas | 28 +++-- Source/Servidor/FactuGES_Server.RES | Bin 23204 -> 23204 bytes Source/Servidor/FactuGES_Server.rc | 2 +- 15 files changed, 273 insertions(+), 199 deletions(-) diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj index 0e125e53..d04a63f4 100644 --- a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj @@ -14,6 +14,7 @@ + @@ -161,14 +162,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj index 3aa4a7db..07a2c97a 100644 --- a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj @@ -8,6 +8,7 @@ + @@ -161,14 +162,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm index 0bc21b7b..847370a6 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm @@ -2,6 +2,7 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor Caption = 'Seleccionar albar'#225'n de proveedor' ClientWidth = 790 ExplicitWidth = 798 + ExplicitHeight = 538 PixelsPerInch = 96 TextHeight = 13 object JvgWizardHeader1: TJvgWizardHeader [0] @@ -52,7 +53,7 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor ExplicitTop = 87 ExplicitWidth = 790 inherited tbxMain: TTBXToolbar - ExplicitWidth = 278 + ExplicitWidth = 126 inherited TBXItem2: TTBXItem Visible = False end @@ -88,11 +89,11 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor end end inherited tbxFiltro: TTBXToolbar - Left = 278 + Left = 126 Top = 23 DockPos = 104 DockRow = 1 - ExplicitLeft = 278 + ExplicitLeft = 126 ExplicitTop = 23 inherited TBXItem34: TTBXItem Action = actQuitarFiltro2 @@ -105,6 +106,7 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor Left = 334 Visible = False ExplicitLeft = 334 + ExplicitWidth = 36 end end inherited StatusBar: TJvStatusBar @@ -113,7 +115,7 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor end inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] Left = 0 - Top = 389 + Top = 449 Width = 790 Height = 36 Align = alBottom @@ -125,7 +127,7 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor ParentFont = False TabOrder = 3 ReadOnly = False - ExplicitTop = 389 + ExplicitTop = 449 ExplicitWidth = 790 ExplicitHeight = 36 inherited JvFooter1: TJvFooter @@ -157,6 +159,22 @@ inherited fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor end end inherited EditorActionList: TActionList [5] + inherited actPrevisualizar: TAction + Enabled = False + Visible = False + end + inherited actImprimir: TAction + Enabled = False + Visible = False + end + inherited actExportarExcel: TAction + Enabled = False + Visible = False + end + inherited actGenerarFactura: TAction + Enabled = False + Visible = False + end end inherited SmallImages: TPngImageList [6] end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm index 02938df3..6ec3441e 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -38,7 +38,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Width = 640 ExplicitWidth = 640 inherited tbxMain: TTBXToolbar - ExplicitWidth = 632 + ExplicitWidth = 640 object TBXSubmenuItem2: TTBXSubmenuItem [0] Caption = 'Nuevo' DisplayMode = nbdmImageAndText diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas index 2256e7ae..316cfef3 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -279,12 +279,6 @@ end; procedure TfEditorFacturasCliente.NuevoInterno; var Respuesta : Integer; - //FPedidosClienteController : IPedidosClienteController; - //APedido : IBizPedidoCliente; - //FAlbaranesClienteController : IAlbaranesClienteController; - //AAlbaranes : IBizAlbaranCliente; - //AFacturasNuevas : IBizFacturaCliente; - //i : integer; begin inherited; diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas index a332b7ad..5bf11f56 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas @@ -88,12 +88,6 @@ procedure TfEditorFacturasProveedor.actNuevoAbonoExecute(Sender: TObject); var Respuesta : Integer; Opcion : Integer; -// FPedidosClienteController : IPedidosClienteController; -// APedido : IBizPedidoCliente; -// FAlbaranesClienteController : IAlbaranesClienteController; -// AAlbaranes : IBizAlbaranCliente; -// AFacturasNuevas : IBizFacturaCliente; -/// i : integer; begin inherited; //ABONOS @@ -278,12 +272,6 @@ end; procedure TfEditorFacturasProveedor.NuevoInterno; var Respuesta : Integer; -// FPedidosProveedorController : IPedidosProveedorController; -// APedido : IBizPedidoProveedor; - //FAlbaranesProveedorController : IAlbaranesProveedorController; - //AAlbaranes : IBizAlbaranProveedor; - //AFacturasNuevas : IBizFacturaProveedor; - //i : integer; begin inherited; diff --git a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj index d9dd0109..5d260789 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj +++ b/Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj @@ -49,64 +49,64 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorDireccionEntregaPedidoProveedor
TfEditorDireccionEntregaPedidoProveedor diff --git a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm index 90541842..5ceb7ae0 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm @@ -2,6 +2,7 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor Caption = 'Seleccionar pedido de cliente' ClientWidth = 656 ExplicitWidth = 664 + ExplicitHeight = 538 PixelsPerInch = 96 TextHeight = 13 object JvgWizardHeader1: TJvgWizardHeader [0] @@ -97,7 +98,7 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor end inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4] Left = 0 - Top = 376 + Top = 436 Width = 656 Height = 49 Align = alBottom @@ -109,7 +110,7 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor ParentFont = False TabOrder = 4 ReadOnly = False - ExplicitTop = 376 + ExplicitTop = 436 ExplicitWidth = 656 inherited JvFooter1: TJvFooter Width = 656 @@ -136,16 +137,16 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor inherited frViewPedidosProveedor1: TfrViewPedidosProveedor [5] Top = 162 Width = 656 - Height = 214 - ExplicitTop = 159 + Height = 274 + ExplicitTop = 162 ExplicitWidth = 656 - ExplicitHeight = 217 + ExplicitHeight = 274 inherited cxGrid: TcxGrid Width = 656 - Height = 86 + Height = 146 RootLevelOptions.DetailTabsPosition = dtpNone ExplicitWidth = 656 - ExplicitHeight = 89 + ExplicitHeight = 146 inherited cxGridView: TcxGridDBTableView DataController.Summary.DefaultGroupSummaryItems = < item @@ -171,25 +172,17 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor Width = 656 ExplicitWidth = 656 inherited txtFiltroTodo: TcxTextEdit - Style.LookAndFeel.SkinName = '' - StyleDisabled.LookAndFeel.SkinName = '' - StyleFocused.LookAndFeel.SkinName = '' - StyleHot.LookAndFeel.SkinName = '' - end - inherited edtFechaIniFiltro: TcxDateEdit - Style.LookAndFeel.SkinName = '' - StyleDisabled.LookAndFeel.SkinName = '' - StyleFocused.LookAndFeel.SkinName = '' - StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 618 + Width = 618 end inherited edtFechaFinFiltro: TcxDateEdit - Style.LookAndFeel.SkinName = '' - StyleDisabled.LookAndFeel.SkinName = '' - StyleFocused.LookAndFeel.SkinName = '' - StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 277 Width = 277 end + inherited eLista: TcxComboBox + Left = 685 + ExplicitLeft = 685 + end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 656 @@ -202,8 +195,8 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor end end inherited pnlAgrupaciones: TTBXDockablePanel - Top = 188 - ExplicitTop = 191 + Top = 248 + ExplicitTop = 248 ExplicitWidth = 656 inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 656 @@ -240,7 +233,16 @@ inherited fEditorElegirPedidosProveedor: TfEditorElegirPedidosProveedor inherited actDuplicar: TAction Visible = False end + inherited actExportarExcel: TAction + Enabled = False + Visible = False + end inherited actRecibirPedido: TAction + Enabled = False + Visible = False + end + inherited actFacturarPedido: TAction + Enabled = False Visible = False end end diff --git a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas index e37082e7..4404415f 100644 --- a/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas +++ b/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas @@ -10,11 +10,11 @@ type JsListaFacturasGeneradas: TJSDialog; end; - function GenerarFacturaCliAlb(const IDAlbaran : Integer) : Boolean; overload; - function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente) : Boolean; overload; + function GenerarFacturaCliAlb(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; function GenerarFacturaCliAlb : Boolean; overload; - function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; + function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; const CopiarDetalles: Boolean = True): Boolean; implementation @@ -205,21 +205,23 @@ begin end; -function GenerarFacturaCliAlb(const IDAlbaran : Integer) : Boolean; overload; +function GenerarFacturaCliAlb(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; var AAlbaran : IBizAlbaranCliente; begin Result := False; - try - if not Assigned(AAlbaranesClienteController) then Inicializar; AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran); - if Assigned(AAlbaran) then - Result := GenerarFacturaCliAlb(AAlbaran); + begin + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos del albaran seleccionados a su factura correspondiente?', [])) = IDYES) then + Result := GenerarFacturaCliAlb(AAlbaran) + else + Result := GenerarFacturaCliAlb(AAlbaran, False); + end; if Assigned(AAlbaranesClienteController) then Finalizar; @@ -229,7 +231,7 @@ begin end; end; -function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente) : Boolean; overload; +function GenerarFacturaCliAlb(AAlbaran : IBizAlbaranCliente; const CopiarDetalles: Boolean = True) : Boolean; overload; var AFacturasNuevas : IBizFacturaCliente; i: Integer; @@ -247,7 +249,7 @@ begin try AFacturasNuevas := AFacturasClienteController.Nuevo(False); - if GenerarFacturas(AFacturasNuevas, AAlbaran) then + if GenerarFacturas(AFacturasNuevas, AAlbaran, CopiarDetalles) then begin if AFacturasNuevas.DataTable.RecordCount = 1 then begin @@ -295,7 +297,12 @@ begin + #10#13 + 'Si elige albaranes de clientes diferentes se dará de alta una factura por cada uno de ellos.' , True); if Assigned(AAlbaranes) then - Result := GenerarFacturaCliAlb(AAlbaranes); + begin + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos de/los albaran/es seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaCliAlb(AAlbaranes) + else + Result := GenerarFacturaCliAlb(AAlbaranes, False); + end; if Assigned(AAlbaranesClienteController) then Finalizar; @@ -304,7 +311,7 @@ begin end; end; -function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; +function GenerarFacturas(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; const CopiarDetalles: Boolean = True): Boolean; var AFacturaActual : IBizFacturaCliente; AAlbaranesController : IAlbaranesClienteController; @@ -325,9 +332,6 @@ begin if not AListaAlbaranes.DataTable.Active then AListaAlbaranes.DataTable.Active := True; -// ShowHourglassCursor; -// Application.ProcessMessages; - AAlbaranesController := TAlbaranesClienteController.Create; try // Ordenar por fecha de albaran @@ -370,34 +374,52 @@ begin // Ya tengo la factura. Le añado los conceptos del albarán AFacturaActual.Detalles.DataTable.Last; - // Añado el título - AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); - with AFacturaActual.Detalles do + //Se pone la referencia del pedido y el total y nos olvidamos de los detalles + if not CopiarDetalles then begin - Edit; - CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); - Post; - end; - // Añado el contenido del albarán - CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albaran ' + AListaAlbaranes.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los pedidos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del pedido a la factura + else + begin + // Añado el título + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Añado el contenido del albarán + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); - AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); - with AFacturaActual.Detalles do - begin - Edit; - CONCEPTO := 'Porte del albarán'; - CANTIDAD := 1; - IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; - Post; - end; + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Porte del albarán'; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_PORTE; + Post; + end; - // Añado el resumen - AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); - with AFacturaActual.Detalles do - begin - Edit; - CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; - Post; + // Añado el resumen + AFacturasClienteController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; + Post; + end; end; // Añado una línea en blanco diff --git a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas index 1708a96f..a8bb813f 100644 --- a/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas +++ b/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas @@ -13,11 +13,11 @@ type JsListaFacturasGeneradas: TJSDialog; end; - function GenerarFacturaProvAlbProv(const IDAlbaran : Integer) : Boolean; overload; - function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; + function GenerarFacturaProvAlbProv(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; + function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; function GenerarFacturaProvAlbProv : Boolean; overload; - function GenerarFacturas(AFacturas : IBizFacturaProveedor; AListaAlbaranes : IBizAlbaranProveedor): Boolean; + function GenerarFacturas(AFacturas : IBizFacturaProveedor; AListaAlbaranes : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True): Boolean; implementation @@ -25,7 +25,7 @@ implementation uses DB, uDialogUtils, uDADataTable, - schFacturasProveedorClient_Intf, + schFacturasProveedorClient_Intf, schAlbaranesProveedorClient_Intf, uBizDetallesFacturaProveedor, @@ -215,21 +215,23 @@ begin end; -function GenerarFacturaProvAlbProv(const IDAlbaran : Integer) : Boolean; overload; +function GenerarFacturaProvAlbProv(const IDAlbaran : Integer; const CopiarDetalles: Boolean = True) : Boolean; overload; var AAlbaran : IBizAlbaranProveedor; begin Result := False; - try - if not Assigned(AAlbaranesProveedorController) then Inicializar; AAlbaran := AAlbaranesProveedorController.Buscar(IDAlbaran); - if Assigned(AAlbaran) then - Result := GenerarFacturaProvAlbProv(AAlbaran); + begin + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos del albaran seleccionados a su factura correspondiente?', [])) = IDYES) then + Result := GenerarFacturaProvAlbProv(AAlbaran) + else + Result := GenerarFacturaProvAlbProv(AAlbaran, False); + end; if Assigned(AAlbaranesProveedorController) then Finalizar; @@ -239,7 +241,7 @@ begin end; end; -function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor) : Boolean; overload; +function GenerarFacturaProvAlbProv(AAlbaran : IBizAlbaranProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; var AFacturasNuevas : IBizFacturaProveedor; i: Integer; @@ -254,10 +256,10 @@ begin if not Assigned(AAlbaranesProveedorController) then Inicializar; - + try AFacturasNuevas := AFacturasProveedorController.Nuevo(False); - if GenerarFacturas(AFacturasNuevas, AAlbaran) then + if GenerarFacturas(AFacturasNuevas, AAlbaran, CopiarDetalles) then begin if AFacturasNuevas.DataTable.RecordCount = 1 then begin @@ -303,7 +305,12 @@ begin + #10#13 + 'Si elige albaranes de proveedores diferentes se dará de alta una factura por cada uno de ellos.' , True); if Assigned(AAlbaranes) then - Result := GenerarFacturaProvAlbProv(AAlbaranes); + begin + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos del/los albaran/es seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaProvAlbProv(AAlbaranes) + else + Result := GenerarFacturaProvAlbProv(AAlbaranes, False); + end; if Assigned(AAlbaranesProveedorController) then Finalizar; @@ -313,7 +320,7 @@ begin end; -function GenerarFacturas(AFacturas: IBizFacturaProveedor; AListaAlbaranes: IBizAlbaranProveedor): Boolean; +function GenerarFacturas(AFacturas: IBizFacturaProveedor; AListaAlbaranes: IBizAlbaranProveedor; const CopiarDetalles: Boolean = True): Boolean; var AFacturaActual : IBizFacturaProveedor; AAlbaranesController : IAlbaranesProveedorController; @@ -334,9 +341,6 @@ begin if not AListaAlbaranes.DataTable.Active then AListaAlbaranes.DataTable.Active := True; -// ShowHourglassCursor; -// Application.ProcessMessages; - AAlbaranesController := TAlbaranesProveedorController.Create; try // Ordenar por fecha de albaran @@ -388,16 +392,34 @@ begin // Ya tengo la factura. Le añado los conceptos del albarán AFacturaActual.Detalles.DataTable.Last; - // Añado el título - AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); - with AFacturaActual.Detalles do + + //Se pone la referencia del pedido y el total y nos olvidamos de los detalles + if not CopiarDetalles then begin - Edit; - CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); - Post; - end; - // Añado el contenido del albarán - CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albaran ' + AListaAlbaranes.REFERENCIA; + CANTIDAD := 1; + IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_TOTAL; //Tecsitel no utiliza el IVA en los pedidos por lo tanto el + //importe total es lo que queremos (IMPORTE_NETO+IMPORTE_PORTE) + Post; + end; + end + //Se copian los detalles del pedido a la factura + else + begin + // Añado el título + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_TITULO); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Albarán ' + AListaAlbaranes.REFERENCIA + ' del ' + DateToStr(AListaAlbaranes.FECHA_ALBARAN); + Post; + end; + // Añado el contenido del albarán + CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles); {En los albaranes a proveedor el porte es a nivel del artículo Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO); @@ -411,13 +433,14 @@ begin end; } - // Añado el resumen - AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); - with AFacturaActual.Detalles do - begin - Edit; - CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; - Post; + // Añado el resumen + AFacturasProveedorController.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_SUBTOTAL); + with AFacturaActual.Detalles do + begin + Edit; + CONCEPTO := 'Total del albarán ' + AListaAlbaranes.REFERENCIA; + Post; + end; end; // Añado una línea en blanco @@ -443,7 +466,6 @@ begin Result := True; finally AAlbaranesController := NIL; -// HideHourglassCursor end; end; diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm index e035a753..e4eaa873 100644 --- a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.dfm @@ -32,7 +32,7 @@ object dmGenerarFacturasProvPed: TdmGenerarFacturasProvPed FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} - Instruction.Text = 'Se ha generado el albar'#195#161'n...' + Instruction.Text = 'Se han generado las facturas...' Instruction.Glyph.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 00001C0806000000720DDF940000000970485973000017120000171201679FD2 @@ -64,10 +64,6 @@ object dmGenerarFacturasProvPed: TdmGenerarFacturasProvPed 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} Instruction.Icon = tdiCustom CustomButtons = < - item - Caption = 'Ver el albar'#225'n' - Value = 100 - end item Caption = 'Continuar' Value = 200 diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas index c88a9a52..e1462b2a 100644 --- a/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas +++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedUtils.pas @@ -209,19 +209,24 @@ var APedido : IBizPedidoProveedor; begin Result := False; - if not Assigned(APedidosProveedorController) then - Inicializar; + try + if not Assigned(APedidosProveedorController) then + Inicializar; - APedido := APedidosProveedorController.Buscar(IDPedido); - Result := GenerarFacturaProvPed(APedido, CopiarDetalles); + APedido := APedidosProveedorController.Buscar(IDPedido); + if Assigned(APedido) then + Result := GenerarFacturaProvPed(APedido, CopiarDetalles); - if Assigned(APedidosProveedorController) then - Finalizar; + if Assigned(APedidosProveedorController) then + Finalizar; + + finally + APedido := Nil; + end; end; function GenerarFacturaProvPed(APedidos : IBizPedidoProveedor; const CopiarDetalles: Boolean = True) : Boolean; overload; var - ARespuesta : Integer; AFacturasNuevas : IBizFacturaProveedor; i: Integer; begin @@ -283,7 +288,13 @@ begin 'Elija el pedido o pedidos de proveedor que desea utilizar para dar de alta la factura.' + #10#13 + 'Si elige Pedidos de proveedores diferentes se dará de alta una factura por cada uno de ellos.' , True); - Result := GenerarFacturaProvPed(APedidos); + if Assigned(APedidos) then + begin + if (ShowConfirmMessage('Generar factura', Format('¿Desea copiar todos los conceptos de/los pedido/s seleccionados a sus facturas correspondientes?', [])) = IDYES) then + Result := GenerarFacturaProvPed(APedidos) + else + Result := GenerarFacturaProvPed(APedidos, False); + end; if Assigned(APedidosProveedorController) then Finalizar; @@ -333,6 +344,7 @@ begin // No hay factura de ese Proveedor. Creo una nueva AFacturasProveedorController.Anadir(AFacturas); APedidosController.RecuperarProveedor(AListaPedidos); + AListaPedidos.Proveedor.DataTable.Active := True; AFacturas.Proveedor := AListaPedidos.Proveedor; AFacturaActual := AFacturas; end; diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index d46a0c73c62721e6ae6a4735c4251c46c42f880d..f2948dde508734e70524d92c50c03ef6a3dbe833 100644 GIT binary patch delta 21 ccmZ3om2t^d#tk7+?B)zs3XFlcS?N0a7pqfB*mh diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index 1620c99b..4e581167 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -14,7 +14,7 @@ BEGIN BEGIN VALUE "FileVersion", "1.2.3.0\0" VALUE "ProductVersion", "1.2.3.0\0" - VALUE "CompileDate", "jueves, 21 de agosto de 2008 13:44\0" + VALUE "CompileDate", "jueves, 21 de agosto de 2008 17:06\0" END END BLOCK "VarFileInfo"